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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 Y1 B1 S3 Q; o4 H' G( q4 y; s. c2 ^#include <linux/init.h>
! h3 k6 `. M% B. Z, c# D( g) W, L#include <linux/module.h>
; @) T0 R4 G! z/ X1 l* U$ i' r" x# z#include <linux/kernel.h>
. \( ?  l5 `. o, p3 Y#include <linux/types.h>
- L7 l5 r" r/ @9 b* E, X#include <linux/gpio.h>* O% k! C- c0 \" x0 L: C  m
#include <linux/leds.h>! f6 n1 V$ L* ]7 U2 o/ B
#include <linux/platform_device.h>
6 `+ E7 O5 w/ i' W
: B2 L. e" L  s! {#include <asm/mach-types.h>
. i+ G; S6 W9 {1 z#include <asm/mach/arch.h>
& p( d" r" u8 V! z* t, m#include <mach/da8xx.h>- E2 v6 |9 x( T+ P% P
#include <mach/mux.h>$ [9 e6 F8 Y5 V% V

2 [' Q  Z) B4 j- F! W) X" |# k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* G% H5 Y; b6 |- {( R' B0 `& r#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& ?+ B3 O% r1 m# e; Z" k3 ]: L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# O, m: @7 ^( D$ j& ~( O$ m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 W- P0 A8 ^4 t
3 ^8 J) n+ n2 Q/ E1 p: H/* assign the tl som board LED-GPIOs*/' h* ^8 W* @0 `6 h; h& [0 w
static const short da850_evm_tl_user_led_pins[] = {, [0 Q% v! k! Y4 Z' @
        /* These pins are definition at <mach/mux.h> file */9 i$ z. w% W: H. F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," L$ H' }; q5 F0 r- Z$ i% ?3 q
        -1
; z7 F2 D. Z  `! ^) @$ A# g};
, d: ?+ e  f3 A) x( v( S2 m9 w5 J
) ]0 b! R3 D3 ^; Z' cstatic struct gpio_led da850_evm_tl_leds[] = {" u8 i! V, M  ]  ?5 }/ j
        {
- K2 L) g$ Z1 P, S% L8 M1 J                .active_low = 0,- d0 ~! j) z1 e4 w
                .gpio = DA850_USER_LED0,
$ v0 b8 }8 v: ]0 m. t$ m                .name = "user_led0",
. B" i( r2 Y6 }9 \+ V                .default_trigger = "default-on",* N) P* w; E4 f0 o$ n9 I
        },
* I& e9 H$ T  T        {
) B* V+ O% c4 B" D* ^                .active_low = 0,
8 _9 r+ m0 t# k: C6 B1 a                .gpio = DA850_USER_LED1,( \% m& d1 d( z! C1 T+ B0 w
                .name = "user_led1",
' g2 ?; i& c! c2 o% ~. J! q9 @6 V                .default_trigger = "default-on",. W$ b$ H+ M5 k; w" ]7 ]5 H
        }," O/ ?7 E3 {5 O% B& f# Q: m
        {  W, G: o# H& H* Y2 K4 F4 I6 p
                .active_low = 0,* e  I) q; {- \
                .gpio = DA850_USER_LED2,
; l0 c% h$ E% m                .name = "user_led2",
( G4 o5 Z5 T# g& x4 S5 I) h                .default_trigger = "default-on",% P5 S, d, J+ O
        },5 l3 H1 u+ E) z
        {, L. s$ l% t5 O. q6 x
                .active_low = 0,
2 |0 v2 a3 z5 f                .gpio = DA850_USER_LED3,; {: \( v6 J' j$ {- u
                .name = "user_led3",
7 z) |9 N2 O- g0 g) ?                .default_trigger = "default-on",$ G( U' I% L5 G& {1 y
        },
$ V: [! w3 q, n' e7 A};
% \' g* ]9 r& ]( O8 R+ H0 A) I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% Z, \7 }* O+ s3 R
        .leds = da850_evm_tl_leds,
' }2 ^( i+ I, V& D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! f' j  `1 h; O. x7 C, `1 Z: L9 K
};2 _3 @5 \  g' A' p0 O0 I

7 c. n7 c0 \1 q7 \static void led_dev_release(struct device *dev)9 z; T$ f5 O- \3 P6 Y) B9 v
{
# o9 R; [; z0 n; i1 H};
/ T# X# }, _$ z' }0 r
# \* S9 I% W- `4 ?( G: X6 nstatic struct platform_device da850_evm_tl_leds_device = {
5 _. G/ |, Q$ ]0 x, W4 c# y& e' d        .name                = "leds-gpio",; B/ d+ `5 D# }4 p
        .id                = 1,( e! Z+ Z" V. C
        .dev = {
, E' b1 V0 |  g+ T  u: w5 X                .platform_data = &da850_evm_tl_leds_pdata,
' u' ?( c% h) g                .release = led_dev_release,
; X; d# T4 G. n* X& Y  ~3 i1 i5 u& p4 ^        }! W6 w+ _9 u& ^1 u
};
  j2 e# Y' k6 X. h; u8 x+ E- h5 ~, M2 z& Y' G% R+ _5 S
static int __init led_platform_init(void)
" ~5 u/ a/ T3 J4 V  M( ?8 D{( E# x* T! j, \
        int ret;
0 {5 m) Q. [2 R#if 0
3 V: a) o3 g" Q$ S" |# d+ m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* z1 c7 }' ]# |  V' B7 F        if (ret)
! M- ~7 k) J  b1 q2 [/ S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' H7 r" T" t: r. H  T
                                "%d\n", ret);
5 m$ Y& L! V( a" n0 f#endif8 l9 t; a( y; A" w
        ret = platform_device_register(&da850_evm_tl_leds_device);$ t1 j$ Z! k% u6 C' O
        if (ret)
0 n7 X2 A6 I& I, V) }, x. A                pr_warning("Could not register som GPIO expander LEDS");
) b  q$ Q! V( e% A, a        else
  f) G) W# X8 G                printk(KERN_INFO "LED register sucessful!\n");
- W( R/ [( q3 F- C6 y& j
- B$ R7 d) n; L; y1 G6 c+ @4 p+ t        return ret;+ E/ J* E. k' ^: o  ?, [$ _
}/ }- V: G$ H. g) v  K/ G3 M/ k
% ?; F9 h- N/ U" V1 x
static void __exit led_platform_exit(void)
3 E, a4 w. n( [( O! \# f/ T' Z7 ~{
' Z( a$ A& t+ y8 y2 _* Q% J( n        platform_device_unregister(&da850_evm_tl_leds_device);! T5 @- P- Z# I9 x4 l! T
: t% I: a' z6 _8 ?& H6 f
        printk(KERN_INFO "LED unregister!\n");7 |# ?5 D0 B: I! n: m" {
}
( m+ e  f; q% Y3 j7 |8 g# h9 D7 {9 I3 {/ c# D5 X0 k
module_init(led_platform_init);$ ?4 Q- Q. c* n) m9 T
module_exit(led_platform_exit);
6 d* i3 U3 J$ w; p4 I: v0 }  A/ o9 ]$ @- l
MODULE_DESCRIPTION("Led platform driver");8 O4 K6 y* ^+ N
MODULE_AUTHOR("Tronlong");6 M+ z! s6 d% ?/ R
MODULE_LICENSE("GPL");
' Z, B- Q0 [+ s' |4 |! L
7 g) ~0 d1 H2 i. D! e$ _/ F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-8 01:10 , Processed in 0.039002 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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