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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  o+ h3 a7 v9 q3 \#include <linux/init.h>+ v0 d4 u3 {1 H$ m
#include <linux/module.h>5 H# ~# l7 B. O, t; i3 _1 {
#include <linux/kernel.h>1 k* o0 C" [# q5 R4 B8 b; {/ J6 f( J
#include <linux/types.h>5 I3 K2 O9 y7 J) U: m8 f+ ~5 y" i
#include <linux/gpio.h># b7 D8 l0 o" c7 Q) n
#include <linux/leds.h>
8 k" v+ N7 |* G- ^$ F#include <linux/platform_device.h>% D+ g7 o4 ?: Z2 J: _& w" e! w# b
. H* v; i0 T- Q. W+ s/ P+ m
#include <asm/mach-types.h>  @9 t4 C- ^% ^3 Q" l9 l8 Q
#include <asm/mach/arch.h>
- w& S4 W. C: `2 M; p#include <mach/da8xx.h>
4 j9 Z! i. ^! U' [/ g1 ?, q+ @#include <mach/mux.h>1 ?5 G! u& r9 _1 x; `

+ m, ?  |" F0 {# i, }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 Z: v, T( |0 B( Z- h  V* f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): _; {+ j( x0 C% C6 C, m3 g1 ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( q4 p8 g8 m' z9 o1 A9 d% X0 n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): F; ~( o; F; z' ~* W
7 w& o* Q# K6 e) c# r1 }. C
/* assign the tl som board LED-GPIOs*/! b. z/ @3 P* i5 @+ H- @8 C9 K
static const short da850_evm_tl_user_led_pins[] = {) T4 e% |& P$ P& X; w
        /* These pins are definition at <mach/mux.h> file */
1 |2 Y7 E; B  h. u" |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. u. A: G7 a6 ?$ z! H- A/ I' v, L        -1
1 T- o* O# n6 p5 ?0 f! O};0 B6 @& G' y2 w9 h+ G6 ~

  K9 D9 ?5 S' ^/ C, {static struct gpio_led da850_evm_tl_leds[] = {
. V" j' I( O3 d0 ]& f        {
/ W/ O  K5 |/ W$ U! u5 [2 K' v                .active_low = 0,( l' _2 x; B+ S  n+ j8 [
                .gpio = DA850_USER_LED0,9 |6 }" m' `* F+ Q5 E0 d# t
                .name = "user_led0",2 k. x  z( x" }; P2 F: v5 A
                .default_trigger = "default-on",
/ Q$ C0 C6 ?- M/ D0 ~! Z. o        },
8 G! L2 p( N  y! ]        {
4 G9 @1 r: Y7 m' M* E! t                .active_low = 0,- G% m: i* t8 c2 f8 R; _7 G
                .gpio = DA850_USER_LED1,
) l: o8 j9 g+ y& b                .name = "user_led1",
! l& {3 l1 Y; @( m) K4 h                .default_trigger = "default-on",% Q5 I5 N: m+ k# ^6 B0 H, ~  d
        },; h" \" D. T! O/ ]8 N' w$ k% d
        {
+ Z$ d1 H( G+ O; S                .active_low = 0,) o! n' r: a7 |* E, @8 C
                .gpio = DA850_USER_LED2,9 r1 N, Q0 l6 ?3 C% z9 K
                .name = "user_led2",
% y+ Q9 r/ u7 G) h                .default_trigger = "default-on",
* T5 |& k  M8 y$ N, V, G* G& o; y- l        },
! n, ]  a* H: `        {
% B$ p# m, E+ n2 z& ~% v                .active_low = 0,
0 n9 e) U% m. ]) e( h6 w                .gpio = DA850_USER_LED3,
* H7 D, f  r: Q6 [/ v                .name = "user_led3",' U+ `; ]& u5 u% ~, H: _  G
                .default_trigger = "default-on",) d  M& i8 g; X8 m+ d  F2 K5 z
        },3 c( h! [% x/ l( O8 J
};
0 ~  ], \6 ]. {4 P+ _  j7 b0 x- _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 X- O) G/ f3 s6 K5 C: c' [, n
        .leds = da850_evm_tl_leds,1 n0 }9 g* }+ C( u, Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: H; Z! n$ z/ C% M2 g, G/ O};
$ w' ^  b$ W3 o2 o# a- F1 C  O  [. o' P2 ]/ `3 O
static void led_dev_release(struct device *dev)- K, [9 i/ S) s$ }% O5 ?( }5 R5 l
{
8 j: w. _5 L6 V/ m8 h1 J8 D: _};9 C& i" U0 R; R
. ^+ T9 k2 a5 |6 t) H9 t
static struct platform_device da850_evm_tl_leds_device = {
$ `* l& q/ T; M3 e( a: h        .name                = "leds-gpio",- x1 ]% N+ H  q" e3 ]
        .id                = 1,3 ^6 z/ Y  s' t8 a+ e* N
        .dev = {' A( ]" q6 Z$ d- n' R- ~
                .platform_data = &da850_evm_tl_leds_pdata,
! e# m# k5 ~5 Y. m2 t& @, Z# [" B                .release = led_dev_release,
1 H! n2 L/ ], p        }
4 a% E& y! P# t2 }+ e/ z9 S& h};
- J# {, Q# L8 r1 P6 a/ B. |
: ?/ Y! T  ?3 u2 S7 ustatic int __init led_platform_init(void)/ o5 k7 M9 _" N: l5 J  k0 Q. t
{
4 d0 r7 {5 a( B: c3 a5 c; Z9 c- i. ?        int ret;* Y& j; W6 B3 i- h
#if 0
7 x0 \0 H8 o8 a3 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' U) h9 P; h  E
        if (ret)
4 Z8 [( }+ |0 h8 Y9 C( _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 r0 K9 Z! D/ N& O9 L+ K
                                "%d\n", ret);7 A/ \* G1 f, p' M# G7 h0 M
#endif2 L9 d! L% ~5 z7 z. b
        ret = platform_device_register(&da850_evm_tl_leds_device);/ r/ V' s% h" H2 M6 x% P6 I* q
        if (ret)/ w9 \  o* ~2 S7 f. W
                pr_warning("Could not register som GPIO expander LEDS");0 ?7 C  Q) D7 r9 }  h
        else) n3 e0 b% [$ ]5 a: N3 {" V
                printk(KERN_INFO "LED register sucessful!\n");3 c8 U$ K6 q2 D6 p7 }: p: D

  z4 k; S, L! u9 z- |: E% E, ?3 _        return ret;
, P7 c; v" T8 U( |1 C}8 W0 M+ F- d. }4 S! Z; V

* g3 Y; @% J; C+ [static void __exit led_platform_exit(void)
: ?2 F2 `1 T4 X$ f* _{
1 r/ Y& y) Z6 W        platform_device_unregister(&da850_evm_tl_leds_device);1 g- R/ N2 u  ~9 h2 ?

5 A: W& x& n9 C. i5 o        printk(KERN_INFO "LED unregister!\n");) T0 @9 u3 d' j9 ^# w6 q
}
3 ^* ?& f" h+ m3 e3 X+ P4 X( q4 O2 r- @. |; W
module_init(led_platform_init);
6 v# e& q1 d) @* K+ h# K8 Pmodule_exit(led_platform_exit);6 Y0 S$ h( g- ^- F3 \9 G

7 d7 \2 o6 X8 ], e1 iMODULE_DESCRIPTION("Led platform driver");
$ G$ K0 j& T- ~9 V$ r" d  ^MODULE_AUTHOR("Tronlong");
$ u) c4 ^* O# l1 k+ rMODULE_LICENSE("GPL");6 \( {; ?" O* _
: q% E) j; R1 \0 G7 y# i- D2 l7 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-2 14:44 , Processed in 0.043353 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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