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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 a! U1 t4 A, a6 V1 \#include <linux/init.h>1 h0 _7 Q" r& O+ ]2 @( K& V
#include <linux/module.h>% {( b2 L0 w- C0 Q
#include <linux/kernel.h>
3 \* K- d) U% E% r#include <linux/types.h>- V1 u# ~& d9 }6 a+ y+ ~
#include <linux/gpio.h>% v! C2 C; Z1 g
#include <linux/leds.h>/ Y8 Q+ U( f7 l
#include <linux/platform_device.h>
; W2 v/ q6 U0 Y3 _$ Q
% \6 M, B% u7 t#include <asm/mach-types.h>
& \) h: ~9 |; R#include <asm/mach/arch.h>
$ Q( {% B$ _# f#include <mach/da8xx.h>
6 K+ ?; l  H' i8 ~( R5 L) u#include <mach/mux.h># G: S2 A$ V& G  e# L( P) E4 Q. _" k

) B1 Y$ V/ P' e8 u0 y  ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 A; z( @- N" M5 i2 R5 I, F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! l7 x  x. ~$ t+ [1 B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 R  q* j1 E- B4 A, E! P$ K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): [9 n3 c) h, ?' r- {+ n% U
( c8 U* a1 _0 P! p
/* assign the tl som board LED-GPIOs*/
2 S: H  ?& ^5 i1 V7 kstatic const short da850_evm_tl_user_led_pins[] = {
3 I' v; A, r) X        /* These pins are definition at <mach/mux.h> file */
4 ~( D: S  ?8 e+ y. o1 O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 K& @8 R& s4 g3 K& O4 y3 V1 [
        -1
% ~' x4 A6 J! N  @5 W};" d' j9 z2 p7 {0 i6 a% [! d
9 k* x5 J0 O9 \  ]9 n3 m7 K
static struct gpio_led da850_evm_tl_leds[] = {
& x6 l* J. X  b% H& X5 h& N, P        {
9 \+ y5 ]; F/ {$ z                .active_low = 0,2 x' U7 o8 E. [! Z$ C& v8 k9 |
                .gpio = DA850_USER_LED0,
* u  k9 G' `" j& C4 T# S                .name = "user_led0",& [( H& J. x, H* `, E6 k
                .default_trigger = "default-on",: V  g! b  z# Y- T
        },
$ |% P9 [% F* g        {6 K( z) D5 ^% b5 w! U: d
                .active_low = 0,
+ s# q5 ^7 ~& W" U, j                .gpio = DA850_USER_LED1,
+ p. D( c7 P: D2 h1 ]- z                .name = "user_led1",1 g6 R4 v5 Q  {' ~# _
                .default_trigger = "default-on",
4 T+ o8 B* {# ]  c) l) c& B        },3 ]1 T  O: c6 u0 K$ D5 `1 ^
        {
" Y+ p) I4 N  ?                .active_low = 0,
( F& Z1 _& {- a                .gpio = DA850_USER_LED2,3 V- y# i0 T5 m
                .name = "user_led2",
$ T1 z7 F6 w9 O1 z                .default_trigger = "default-on",& a7 w$ E0 H6 z9 s6 t/ s/ X8 O
        },
+ i" Z. |6 I; X. i8 M3 L5 s        {9 V# y8 q& {, W$ C
                .active_low = 0,3 w& _  M! q8 R+ E$ k
                .gpio = DA850_USER_LED3,
5 S- C# V  q: e  U- S                .name = "user_led3",5 F. f3 Z# M# T
                .default_trigger = "default-on",3 w, ~' T7 R$ z- X( n
        },
+ C; W1 M# l5 N! C2 B' U3 @# Q};0 j$ v. k7 C! O& g7 }6 ]

) p9 W' T1 f$ T. M- h7 c& ^/ Tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; A) Z+ C. `8 z        .leds = da850_evm_tl_leds,, b+ l) b8 x1 u$ B6 ^3 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ e9 n* B* i6 r; E
};
3 c. r9 I" n3 R+ b
4 b3 S; U* ^2 |) fstatic void led_dev_release(struct device *dev)$ g& n  T" \) A, j8 }
{; S7 R) M' F, [; v
};+ q6 @( X- R& z

( ?4 d% Z& r. {7 ~' P& m8 B3 |; fstatic struct platform_device da850_evm_tl_leds_device = {
- x* v/ Y- u% @( q7 T! K        .name                = "leds-gpio",  N, O* l3 j( I. b7 z5 S0 d6 b4 ^9 a  [
        .id                = 1,
9 K$ b  E. |0 e" S  N+ f        .dev = {- h9 u; Q# e1 H2 z- P! V  p& B
                .platform_data = &da850_evm_tl_leds_pdata,
+ Y' T; ]; j- v. j8 S3 B; H                .release = led_dev_release,
: K) A# b5 q1 Q/ R3 n+ F, M  h        }
" I( v/ z9 F8 ~  K( s) }  L};& G+ z; g7 c7 Z2 w( k" M$ g

3 ~% C; O: S0 h6 K& X- t3 Gstatic int __init led_platform_init(void)
2 ?" R) C+ I7 C+ k6 r8 k1 ^' o{0 R$ U1 y. d# F/ d, I: h
        int ret;: d1 p' K0 ]9 G3 ^' ?7 J
#if 0
# T  G" A" I+ X7 @$ M0 ?6 T) i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 A) e8 ~+ Q0 V$ V
        if (ret), n: s/ _0 f' L. Y4 j3 u: J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ ~6 @) a& F9 I/ [1 w                                "%d\n", ret);
: x; M6 Z8 w. V9 B#endif9 u3 }# c3 c4 O( w$ H. P
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 e4 |$ ~; O. Z5 u( k. S        if (ret)8 }3 n! p% W2 Z( B: \. a
                pr_warning("Could not register som GPIO expander LEDS");$ i+ m/ T( O/ R) }
        else
) `4 I9 U$ G! W  p  d/ `% q! n                printk(KERN_INFO "LED register sucessful!\n");
4 L+ G  ]' R2 M( k4 i2 r/ F8 L, B" l8 d$ E/ e
        return ret;/ G- ?0 e3 Z3 }: k5 J* |/ b
}0 O5 e! a$ K) S+ E% z7 J4 b
" m7 w: ]1 n4 N" K7 _* n4 a
static void __exit led_platform_exit(void)4 H; n, W2 s# R8 n9 Y
{
: ^- i/ M( H# j$ q1 Z- k        platform_device_unregister(&da850_evm_tl_leds_device);
& _: R$ o8 y2 H4 [9 s; c8 {! `3 U6 ?2 h0 y6 k( o
        printk(KERN_INFO "LED unregister!\n");! P! @# \, R5 D, ]( S
}
3 p. @7 D& E. T% W1 u4 k$ A3 h/ K- P- f& ]- r/ `
module_init(led_platform_init);% K1 B) n, X* G
module_exit(led_platform_exit);' ~% n0 n3 [, P
* T% h0 ?. I! i3 t2 A6 W! z2 H
MODULE_DESCRIPTION("Led platform driver");
' ?, _. y3 ^9 O" O! j9 qMODULE_AUTHOR("Tronlong");" B3 Q6 R, }+ }4 E
MODULE_LICENSE("GPL");  d: j, D4 l( k; s

# h) C, W' H) K: I9 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 03:03 , Processed in 0.039064 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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