程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8790|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' y9 g+ N6 ]5 v! ]
#include <linux/init.h>
: u2 y0 L% y) G) V1 d#include <linux/module.h>
* X7 U. ]0 _) g$ H9 }/ F9 \#include <linux/kernel.h>  I; X! e  g3 v* `9 k
#include <linux/types.h>
) F1 O8 c- m1 a#include <linux/gpio.h>6 Q+ f% l  {6 I7 M% i* H4 G# {
#include <linux/leds.h>
1 ~( K1 F, ^% a* ]% N: {8 Y8 w( E3 @#include <linux/platform_device.h>
; g1 D  X* Z: K. G( L6 o; O1 L5 l9 U0 X  j' i+ G+ J; Y7 h
#include <asm/mach-types.h>% k. m- R' F6 }; `/ u' e5 b
#include <asm/mach/arch.h>
$ `$ S; U! y$ s' Y. j#include <mach/da8xx.h>
. r  }5 C. G$ t" k* @9 T# K#include <mach/mux.h>
' x, N9 i) j) t" J0 c3 F8 T( s/ G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  p3 j, s7 o8 }& _) V' h8 Y% N#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# d+ g3 h; `8 W) Z( H) q: X9 R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ y+ b& L* u% C4 C3 s3 m8 `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! }5 }+ I" I8 M8 c$ D( l' a/ X& U8 ~$ H
/* assign the tl som board LED-GPIOs*/
3 u( {& ^5 Q+ k7 G) ^  e: ~7 g# V# Wstatic const short da850_evm_tl_user_led_pins[] = {1 G. h  g4 v8 D. E
        /* These pins are definition at <mach/mux.h> file */4 ~7 n* u# z' y$ ?8 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 i# _. f) [: ?        -1* b+ O' `* u  u/ e+ c# E$ Z$ c
};3 ]+ c' A6 w! ^) E

# g8 d3 q$ s% o6 Rstatic struct gpio_led da850_evm_tl_leds[] = {& X& j. o8 f1 v) G! o* C9 A; T3 R: [
        {
4 ~& m  q. I7 H, ^8 n' `9 S                .active_low = 0,
4 ]) Z8 P+ t" k: E: T8 T                .gpio = DA850_USER_LED0,
: A! w: x6 Y/ m' g& k; Z$ K) g                .name = "user_led0",5 c, ^0 O# M) s( j
                .default_trigger = "default-on",
" C* }3 s9 m) Q4 o0 `: o        },
9 h" C* @2 A9 [0 \* N8 X& p* T        {* r0 M* c- g* o$ U8 H  Z
                .active_low = 0," j% a" }* U* }! D! k) H0 E
                .gpio = DA850_USER_LED1,
( h1 A. H; m3 ]9 x4 Z2 Y: Y& m                .name = "user_led1",+ |, v6 C+ p  s) a. k% y" L! o
                .default_trigger = "default-on",
) y1 j$ m. j  N# R' H5 q        },( V; g( ]" D4 Z& T% [
        {
; L1 R( F( r& n4 a/ t                .active_low = 0,
' j$ o$ {1 \, P- k" B1 g                .gpio = DA850_USER_LED2,1 s9 I- p/ W! u  Y# B
                .name = "user_led2",
- z3 D- z& v1 ?, P/ G                .default_trigger = "default-on",/ b- b- m' ^  y& X
        },( \5 K; e: f; J' S
        {
9 h4 v( B" u. D! l! j. b                .active_low = 0,
' c. q6 ~$ \  b# B# Z% A6 i! M                .gpio = DA850_USER_LED3,
! K5 t' Q# m7 f. Y6 |, g                .name = "user_led3",# X+ b  [& f4 [" t; U# A) ~
                .default_trigger = "default-on",
  z' i8 r6 t' n- m$ w; D" S. H        },
2 i4 `8 s  o8 M4 v' H. q};( C# ^; W3 n& f

9 z5 S% d5 q, f; d* h7 H5 R# dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: e8 r: V" `" ^# I$ ?
        .leds = da850_evm_tl_leds,
5 ?& \# Y  [- A2 Q; b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," V" h% ]$ B0 ?1 K
};# J4 y+ w/ m. w: j2 p0 W6 R8 u

, A: u) f9 r) H; t( B9 estatic void led_dev_release(struct device *dev)
- U  L6 x- C9 b1 v. Z{7 K  p/ @. P; l. \! J
};
5 u' n2 J" X0 l6 _, |: N- [" \/ D# A3 {. E
static struct platform_device da850_evm_tl_leds_device = {
2 }) L" B4 `2 W6 O( I        .name                = "leds-gpio",
  j. o2 P; Z. h5 B        .id                = 1,
! h; p; ~) b7 f' ^" f+ W. L' B        .dev = {  |7 H- B( |* G+ {8 d
                .platform_data = &da850_evm_tl_leds_pdata,
' g6 Z4 t# b7 p. z) ]3 W+ Q                .release = led_dev_release,
' i5 j: A- f9 S# Z% `2 Z        }
7 Q: B" W! @9 Z};: U, g3 H, O+ x) I4 E
* X8 c9 [& t+ m: o# ^4 R7 M( g: W
static int __init led_platform_init(void)
% Z. g% w- e2 O- b{2 p/ T+ u2 B; Q$ `- a3 m" ^) M
        int ret;" X4 {: t0 H  J6 x- p+ r& v7 G
#if 0. z: V  Y! t: S! Q9 N' t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  a5 T% s# T8 \+ X& t
        if (ret)
" g6 _$ E: k( i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: O! _! \# Y. r3 p                                "%d\n", ret);
7 `2 E5 t' i1 t6 S: g  u2 n# F( J  w#endif
: t% O  ?7 ]+ f( N7 t0 x: i        ret = platform_device_register(&da850_evm_tl_leds_device);/ R7 B( _3 s2 {+ B" L* x0 l
        if (ret)
3 z) D) Z  @) \. G2 ?, q, v: o4 s                pr_warning("Could not register som GPIO expander LEDS");. W2 d5 E1 Z/ ^. f: x" z
        else
* M4 t/ W- Y3 l4 _* F+ o# W- j* }                printk(KERN_INFO "LED register sucessful!\n");
* q# n& Y+ f/ n' c& b0 d6 F3 o" {- \
        return ret;8 h7 y/ c  v. q; u! L- b
}! u4 K" n% X: F. I

5 h4 }+ o9 t: T( Ostatic void __exit led_platform_exit(void). s$ t' |! n: B( Y2 s- T
{: B5 v) P+ ]6 v5 o: \( G# k
        platform_device_unregister(&da850_evm_tl_leds_device);
$ o: O3 a- j! j" T; U3 t& m
) j. g! d! u9 v( M; U        printk(KERN_INFO "LED unregister!\n");* v8 ]+ ^0 X1 Z2 U! `; z2 E6 w' t
}
$ p+ [1 ]( @; D; _. P9 P+ U" ]/ y  v  R
module_init(led_platform_init);
9 {3 j1 r" e$ C( a* Bmodule_exit(led_platform_exit);( N$ A0 e9 H* v; ^% w) H% A9 Z8 r
/ z& k4 A) R# S) F! w3 `" p, ^- c6 f
MODULE_DESCRIPTION("Led platform driver");
3 C# p- F0 V( P2 jMODULE_AUTHOR("Tronlong");
' M" p& p$ q$ v& {" K. F* lMODULE_LICENSE("GPL");: p2 U' l3 s2 |+ K) y; r5 u* P3 r3 B

$ |' Q. D  S* L- P7 f0 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-3 04:01 , Processed in 0.039398 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表