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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 O/ |$ H" T& E. d% k3 `#include <linux/init.h>
8 B" p, W+ f; X#include <linux/module.h>
) }+ ?: E2 n% [0 r5 I$ c. y#include <linux/kernel.h>
$ A5 a( f- z; U* k9 ~" l#include <linux/types.h>
- z! y3 a2 |- p- x# s0 F7 E#include <linux/gpio.h># V6 h7 C- W' _2 v
#include <linux/leds.h>6 q8 K' O( _3 z# c6 O7 l
#include <linux/platform_device.h>  Y' j' a! u& \' l: |
! d" u3 ~5 S7 D9 x$ F
#include <asm/mach-types.h>, E) i! f$ q5 ~) w# ^
#include <asm/mach/arch.h>+ u$ H. N9 R) l! I
#include <mach/da8xx.h>
+ I9 ^5 ?: I9 X+ g- _( a* n#include <mach/mux.h>3 a1 r2 H  F( K) T0 U6 J$ Z% U
/ e+ q- B' H0 U& G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 i9 A# F( [/ O/ _0 Q- R! B9 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 @2 k. O* t+ b) j, }, p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ t. j9 C2 z6 {) _) D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( w8 P- B; T2 |+ \% X
% D2 U( \7 \" ]: A
/* assign the tl som board LED-GPIOs*/* v% O7 ~! W2 W- @$ K5 E
static const short da850_evm_tl_user_led_pins[] = {  N4 {7 }$ A" G
        /* These pins are definition at <mach/mux.h> file */# R( F6 I$ L$ h. u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  i; ~* H# w7 c6 I' w
        -10 c( v6 X, m1 ^8 F8 r" [8 N! L
};% [- I8 n  I4 ~- U
; h8 j, T! Z! C) [4 y( o; x6 f
static struct gpio_led da850_evm_tl_leds[] = {+ n- |2 z! Z1 v% G
        {
, v  l' K. i. \4 R! a' i* y                .active_low = 0,7 {4 M( ~1 @! M3 O+ }4 Z
                .gpio = DA850_USER_LED0,
$ O* r: w" C! K$ V$ ]                .name = "user_led0",
1 z" N5 F% E! ~* \                .default_trigger = "default-on",
& U2 `7 p2 o1 H  F9 X4 f        }," V; k+ T2 x0 ^) l
        {
0 Y) q' f8 l: [1 m+ @1 D                .active_low = 0,! i: Q: K2 t  a+ Q; x8 a4 @
                .gpio = DA850_USER_LED1,# @6 ?; {4 O+ L2 N5 _1 t
                .name = "user_led1",
/ D& P- d* W- i" B5 o3 A  `                .default_trigger = "default-on",
5 n% D/ W3 f' _( q8 x, L. c4 _- g        },5 c+ [  F: O0 X5 X4 ]
        {
1 F0 Z5 Z0 U! m' `; w/ H' |                .active_low = 0,
* G0 E+ G4 V* S                .gpio = DA850_USER_LED2,) M6 L8 O. D$ Q/ p) W8 {' D! f
                .name = "user_led2",
* L; G6 y: k* h+ D1 G% w                .default_trigger = "default-on",
- Q! `2 }. ?6 H        },; [+ s# C+ i1 c5 Q5 [
        {. ?9 Z8 H$ Q7 {" x1 m
                .active_low = 0,5 Z" F) p" S# I2 Q) F
                .gpio = DA850_USER_LED3,: Y- W( X& r5 B9 {
                .name = "user_led3",8 u" g! H" N" R8 n
                .default_trigger = "default-on",$ e8 @( N4 o  S5 u- J. i
        },, T6 d' w+ j& d0 t. P
};
. v7 e; g: }" ^. b! N, `7 c/ ^; u9 V9 I7 \8 C9 _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, o" n) t% h+ I4 [! p1 Z- Q9 U9 d3 M        .leds = da850_evm_tl_leds,
1 d* H  B6 k% `, H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ I/ v; d4 F/ E. W: x
};
$ v  k& p2 F' ~
" E) \, y' C2 Y2 c+ D3 Zstatic void led_dev_release(struct device *dev)) f% ?9 Y5 k* D' Z2 O" F. J; L
{
/ ^7 r% M- S% F: ]};) C) {. A" L5 p$ ^; U. v( J
9 m8 b2 s7 K/ q8 n# o: A
static struct platform_device da850_evm_tl_leds_device = {( F9 w  n0 w* N1 w* x
        .name                = "leds-gpio",
, m/ {0 g4 }) m' ^* ^; Q- `: ^        .id                = 1,5 q0 K& g* z* ]. p  K# f
        .dev = {
1 d# b. z/ F4 t" _1 A7 x                .platform_data = &da850_evm_tl_leds_pdata,
2 [9 U' |: }  z                .release = led_dev_release,
: k5 O7 O1 V7 s0 m* [        }
* c. ]% _' M4 a( V3 Y; a};8 _- F! a6 N; G
1 j$ S9 V$ f# }) G' O
static int __init led_platform_init(void)
, Q' N1 E- T4 r+ J1 O% A{
& o3 F, J2 Y) X& O2 i5 M        int ret;
; }6 p- G8 l, o* ]) o#if 0: X; i  O. _" Q* L/ ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: P! m2 X4 t9 W, P6 ]
        if (ret)( ], u' A8 f5 b* @$ ^7 T/ F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 u7 ?' Y2 e, Q# I3 ]
                                "%d\n", ret);) |( h9 S5 N9 s4 x, c3 d& f  p: Y
#endif
$ e. O& a  c' ?/ v- S& W& y/ ?0 J* f        ret = platform_device_register(&da850_evm_tl_leds_device);# y# ~+ j; U  V% |7 O8 R9 O
        if (ret)
* I8 E& W# d' Y2 a9 q6 O/ ?& o                pr_warning("Could not register som GPIO expander LEDS");
% ]* r3 Q$ f- t/ h+ e        else( T2 M7 o3 @5 ?
                printk(KERN_INFO "LED register sucessful!\n");
! V. k6 |6 G; p
& o8 U# L$ N* z        return ret;
; e7 e4 d0 l: C- L+ P/ Q0 W7 p# L0 Q}5 T3 f* L# K2 k. q+ q4 s5 q) V

6 I$ D1 Q# |  F4 \9 n* r7 s, Xstatic void __exit led_platform_exit(void)
' n6 e; K1 B' v( B6 n{7 _2 v" Q' E2 \7 r. `' e! K
        platform_device_unregister(&da850_evm_tl_leds_device);" ?' U  h) q* T' r0 y$ U6 F8 M
& k% D  i0 N' e/ a& f7 c: @
        printk(KERN_INFO "LED unregister!\n");, ^" A- F8 S: |0 Z! m, a
}& [# W! w1 `: `; S$ B
2 g2 n4 I( n( \* S+ r' s. p
module_init(led_platform_init);" p: I2 H  ~6 M6 T7 C3 j
module_exit(led_platform_exit);- O3 V2 J! O0 f& r1 U6 S( c
) O& J' ^$ G; E$ i3 X  p4 f8 l: U' M
MODULE_DESCRIPTION("Led platform driver");
+ v4 _  D) B) c6 |; L; V* r: c9 G! jMODULE_AUTHOR("Tronlong");6 v; X) D0 a5 l/ U/ [2 p. q
MODULE_LICENSE("GPL");
+ }' l' A% i3 K! V
7 p% K# {0 Q. |* x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-13 00:29 , Processed in 0.040416 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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