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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 {5 w% j" f# z
#include <linux/init.h>
7 G& E# X( N. Q6 [7 t! `+ R) t#include <linux/module.h>
! v: j3 L3 L8 G7 B6 P#include <linux/kernel.h>' ~! j! U/ I8 b- J5 k
#include <linux/types.h>4 H7 j( j" x* p7 o" J  K5 |
#include <linux/gpio.h>
$ i4 B1 Z5 @8 i3 c9 }+ a( U#include <linux/leds.h># J# v2 z- E. h+ u
#include <linux/platform_device.h>7 o7 Q* W/ H" ?" m4 V

8 i1 h2 A2 a2 d/ m#include <asm/mach-types.h>9 [3 t+ Z' i  O2 f! S3 ?
#include <asm/mach/arch.h>
1 c9 m2 |/ s. p( P9 N, D#include <mach/da8xx.h>* ?' ^$ @7 r6 M1 p- S7 e
#include <mach/mux.h>  v, X4 x0 Z4 y1 |) T

/ [6 S( i# l3 W# f  ^% p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' D. _8 }" Q2 M& ^9 L: F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  b' [" n( Q) w6 i% `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 `3 Y: I! z* W: K- p; a% e( d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ]. v  h  X; q$ I

% D, J: r( ]5 i  n. m+ g/* assign the tl som board LED-GPIOs*/9 y: D! G) j7 d/ O+ C
static const short da850_evm_tl_user_led_pins[] = {
7 Y2 G( l+ G8 e        /* These pins are definition at <mach/mux.h> file */
% k- n2 M) f3 d8 a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- I3 ]; c8 r5 F3 r. Y8 G
        -1
" _; ~9 ]2 m2 V) ?2 I8 \# o};5 q! M- D+ E9 T% e7 ]) j& i

9 S( t# |6 ?# f, S' a2 S7 C: fstatic struct gpio_led da850_evm_tl_leds[] = {
* i0 k  a0 D, o, N        {8 L. |& v, W( Z+ J: m
                .active_low = 0,
! G4 l% T" M# C4 Q                .gpio = DA850_USER_LED0,
5 R' q% l5 f2 f( ]                .name = "user_led0",- m/ r: S3 L- Z; @& @, u- p
                .default_trigger = "default-on",
4 a& Z4 f: q: R' N) I" O        },
1 c) D! `8 }) x) i* i0 x: P        {, a1 I1 o/ [1 f
                .active_low = 0,
; j6 Y2 m& @: Z. H                .gpio = DA850_USER_LED1,  I1 `' c) a. e5 i$ u$ B
                .name = "user_led1",' ]+ Z5 y* Z5 r! L
                .default_trigger = "default-on",
2 E- d3 [5 R  S6 X& E; I        },/ c% M5 w9 L8 `
        {
# D- c% X9 E3 O8 M4 T$ M2 M                .active_low = 0," |+ V4 U. u4 t. t8 h: x' s. L, g4 M
                .gpio = DA850_USER_LED2,8 m* y" k( S6 L" N6 r6 V1 X
                .name = "user_led2",) l: E+ B7 p: d; u
                .default_trigger = "default-on",. X6 ?' S: f" ~- F5 r
        },
# B$ j) i" D6 Z* u% T/ R, l        {% z( j) f! Z3 K% h) O6 _- E
                .active_low = 0,
6 m: w) _% |& P$ o+ S9 Y5 m                .gpio = DA850_USER_LED3,
6 [6 g) j( R& {3 @+ h, m5 p                .name = "user_led3",
9 a( X- G: k' h% f                .default_trigger = "default-on",/ E  k; `$ A4 K: J  l* |) \+ l
        },' B0 @. k9 P; B* q  ?# l
};* s0 q8 A$ r" }, {' e9 D0 P- d
8 j$ b: ~7 f. K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 @. b9 ~% z2 ]/ j. X& p! y
        .leds = da850_evm_tl_leds,& _3 \9 W5 C0 N/ Q* M' ~9 t
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 |) i+ m$ v/ o};  v8 O$ S( d  {$ l' _: B
! |# O5 t0 b, H
static void led_dev_release(struct device *dev): E0 a* b. ?4 z$ P
{
9 r) X) j2 r" M% R# {* b};
; ^% U7 Q. C* p5 m9 i& K4 I* y9 c; [$ K3 p: G0 M# C1 q0 Y
static struct platform_device da850_evm_tl_leds_device = {1 B$ V; ]5 \" W7 F
        .name                = "leds-gpio",
6 Y/ q6 \: J% j- ]  T        .id                = 1,3 ^2 |7 _' C" F
        .dev = {
' z9 x' e  W4 j* W9 P! a* l                .platform_data = &da850_evm_tl_leds_pdata,, k  E' o, Q& I! J0 f
                .release = led_dev_release,
: `% |- `" e" i7 \% Y+ ^        }; B) P1 g2 f5 B. O
};
6 h$ v, |! a& }+ n1 }. b0 \, @2 b. D* {# _/ o7 H
static int __init led_platform_init(void)1 s% [6 I' ]) z3 d  W! R- P- ?  k
{: L9 Q8 v' H/ d/ ]
        int ret;3 d: V+ |2 \# U; P. r; N
#if 0
( E5 v& ?, `2 L1 z, d        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" ~7 u0 O% p2 @
        if (ret)) M" v8 M/ j2 H/ j5 [" Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, v0 m! S6 Z, u  d                                "%d\n", ret);
; b: P1 b6 z. q( p#endif
* O6 ~0 P- V2 z0 L0 S        ret = platform_device_register(&da850_evm_tl_leds_device);1 a  V+ H! ^0 ?% S5 R
        if (ret)
  ?2 b6 U" E6 r- U/ u7 J                pr_warning("Could not register som GPIO expander LEDS");
+ A& J9 Q, _- _( j; i* m        else0 O/ ^# Y& W' b
                printk(KERN_INFO "LED register sucessful!\n");2 k2 v. p6 c% C

* \" R. ~- z& X: ?7 V. A; S        return ret;
$ X$ N6 [' B; B1 \}
/ J' ]) V0 {: K8 ~& `
$ x* ]( v! p: b. @' x  Ystatic void __exit led_platform_exit(void)
/ v& j2 S" q7 G* U4 B{
7 q- r# B9 G! y$ M$ h        platform_device_unregister(&da850_evm_tl_leds_device);
! m- Y7 `% v  [" y' U
3 u2 n4 }3 A1 V& L1 X6 N        printk(KERN_INFO "LED unregister!\n");
) V# l1 F5 Z. |" d" C( t; V; y}
/ h$ L, L, B* h6 r2 h. O1 r
, |: a! [% f- G" Q8 Y/ jmodule_init(led_platform_init);
8 c7 i1 \5 _, ^+ x/ z# R/ Bmodule_exit(led_platform_exit);- D: [4 a9 n* g1 q7 f3 K6 h

) b7 F4 M/ M" h7 a. K/ a3 jMODULE_DESCRIPTION("Led platform driver");
; ?  j& b: n5 \/ M; TMODULE_AUTHOR("Tronlong");
4 i5 Q/ U# F( ?; Z5 i1 ?MODULE_LICENSE("GPL");
' k' r/ {- Y9 b
+ _- \- N$ a8 q! Y, [( M8 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 00:14 , Processed in 0.039362 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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