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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 n7 o- ?- m8 @#include <linux/init.h>
$ l5 ~3 ?6 k; O+ ~0 v#include <linux/module.h>
) i( s4 [$ }) {( d2 u/ _  U#include <linux/kernel.h>
/ t6 P& F# c4 Z4 {% t#include <linux/types.h>
& y' j  H3 z# N) f#include <linux/gpio.h>
! ]+ Z3 Y2 n$ T$ D1 a( }#include <linux/leds.h># j. F( ~4 s% O) N) V* X0 Y& p
#include <linux/platform_device.h>6 p3 b0 W& Q  Y) I2 m/ C7 H  E. z! V
4 P. m  T8 V! c; w+ u
#include <asm/mach-types.h>
3 q# k& R; ?" Y! J9 `#include <asm/mach/arch.h>
6 O7 r& H! i9 {4 P/ O3 I5 e2 \#include <mach/da8xx.h>
9 ?5 b5 `8 m9 B& K' D1 U0 X#include <mach/mux.h>
- i% B; W( Q: U% O3 p; g+ Y" o% U* s$ o$ V/ C3 s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. z! y$ q  J8 T  x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* z2 l1 f( q- b2 _" D* I. {$ I5 r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- ]9 X7 z) ^( y# C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: U& O: \( L; }& j( G4 I3 e7 h# A& a
/* assign the tl som board LED-GPIOs*/
& s6 C4 J8 r7 o$ jstatic const short da850_evm_tl_user_led_pins[] = {2 p$ S! {* ^- M: u6 |$ R0 ?( o# T, d
        /* These pins are definition at <mach/mux.h> file */& ?* u0 h  Q" W7 a- C
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& ]: z" l, B& u: e" ?        -1
. w4 v1 Y! G7 z- u) Q};
) s# u5 j' ]" E% W3 e$ q1 T8 r: d  R- k- D8 ?) k" l
static struct gpio_led da850_evm_tl_leds[] = {
5 c5 D2 ?+ ?, {% L! t3 c5 ^4 F8 z7 N! w        {
5 U4 b. U: ]. O- M* m' s5 o$ W, R                .active_low = 0,& m" y2 z' j% o0 ?, P6 s
                .gpio = DA850_USER_LED0,8 c/ C( L& a; B$ I: z
                .name = "user_led0",0 W+ c. F3 M8 r1 i
                .default_trigger = "default-on",
: @4 p+ b8 A0 c! t3 U7 f( j% \        },1 U: h# H: g( p7 m4 A9 D
        {
9 H0 D7 j( r9 }. I                .active_low = 0,$ Y* r7 m7 l2 D5 T8 y
                .gpio = DA850_USER_LED1,0 x  b, h6 e/ o  f
                .name = "user_led1",
5 Q. l6 e4 I1 r3 D3 v% P: B( C                .default_trigger = "default-on",
  r9 C) X$ M; f3 z2 s        },
" Y' h$ Z. I8 f# h& {. F, O        {
, r" O& ?$ v# [" d                .active_low = 0,
4 p0 u2 v: e6 B" H* Y5 `  _                .gpio = DA850_USER_LED2,+ l9 Q* |3 v, U/ S
                .name = "user_led2",& F3 t9 [  R$ ~% A# F  |  D* X
                .default_trigger = "default-on",+ L4 F# J/ \* E. c9 Q7 r7 a+ R/ T
        }," k3 w0 I; Y7 k. J$ s
        {# |6 e% E8 O+ r  h/ D' O
                .active_low = 0,
4 j" T! W. C4 S6 `                .gpio = DA850_USER_LED3,3 Z  m9 ~* Z, N3 a  k. S: h
                .name = "user_led3",
+ k2 g9 x; q* m7 z) n                .default_trigger = "default-on",$ t8 W1 }4 F1 Y/ m6 b# X8 |/ ~
        },+ K& J0 E7 V: e, {
};6 w# q: h. {) d4 u9 `* o7 n5 a$ n
5 q3 {! E: h" i3 z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' j% z& l1 A( y% P" k
        .leds = da850_evm_tl_leds,
4 P3 e; X7 l) _0 @9 [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  C8 n& C$ ]$ e};
/ I. }7 D# N# D3 D# J. k3 {: b. V- p- ?6 n9 v& g
static void led_dev_release(struct device *dev)" S- X+ |/ S6 n; n. V9 E
{% a% ?7 @' H7 o/ p" u
};( L$ _" W$ }: t# E7 a; W5 N( x

" ^# K% c5 _5 L1 Tstatic struct platform_device da850_evm_tl_leds_device = {( v5 U5 Z: k- I0 P& N+ y
        .name                = "leds-gpio",; k$ d% V2 U' X# i: g
        .id                = 1,# p' F' p2 i" n
        .dev = {5 z) O4 M$ E5 ?% B# ^/ n: d2 N% z
                .platform_data = &da850_evm_tl_leds_pdata,9 z" S& F8 ~" ]* @. p* h
                .release = led_dev_release,
' g8 |) X9 Z% V4 G        }0 O3 w! m, q  B- q  Z' f( i
};4 j% N4 \. S$ G. z+ b5 ~

" D1 ~5 M( W; bstatic int __init led_platform_init(void)
- \4 @8 k0 G8 A4 _{
' L! Y1 Q) Y8 R( `) @! E, p+ x) r3 J        int ret;
! N. x- E8 A9 d2 }( O4 R' [1 r# g#if 0
7 B" n- r6 F3 s! y: d+ K0 A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, y% r) F8 I# x$ {' c6 G$ M& w        if (ret)
4 M6 n) @3 N: N( U0 b2 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 j" |1 T) k$ g
                                "%d\n", ret);0 L$ U$ |6 v) _: l. ]
#endif) Q. _' H, F! ^  A
        ret = platform_device_register(&da850_evm_tl_leds_device);. n/ N* m3 l3 e3 M3 C* F9 Y
        if (ret)& Z' I* x( s0 G& E& I1 e
                pr_warning("Could not register som GPIO expander LEDS");
. s' G6 |0 x) g1 V) K        else, L- |' f) U$ _
                printk(KERN_INFO "LED register sucessful!\n");5 v1 H9 m1 @1 A6 C- r) w

% |- F: Z$ e  e+ Q0 F$ ?' m        return ret;( B' ?, F! J4 f  O
}
$ B2 R& j' e/ Y! v& H! p! X% a; H- i/ F* Q) E% R5 B' K; [
static void __exit led_platform_exit(void)
# L/ Z: L' `& t{  `# J3 ^$ O' f
        platform_device_unregister(&da850_evm_tl_leds_device);! g" u- R9 Q& O) q
/ h7 }7 Y4 V$ ]3 @
        printk(KERN_INFO "LED unregister!\n");
% J4 M% i1 J! y& k. n}" N# G/ w/ n; m8 e- b: B5 ]' p

( I& _6 [& A& G: r; J2 ]module_init(led_platform_init);
! ^# K/ U8 ?9 F) t# S! N  }module_exit(led_platform_exit);
2 p3 n: C! w9 `. [* b% |: N' {2 x# o1 |0 |3 u1 t* l( g' @( W
MODULE_DESCRIPTION("Led platform driver");6 `" }- f) t; E! h+ a5 t
MODULE_AUTHOR("Tronlong");
& T9 ^$ \( g6 ?MODULE_LICENSE("GPL");
- ^8 N7 p0 F, z$ s3 B
$ a0 y1 U, h; L3 a% G4 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 23:18 , Processed in 0.039508 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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