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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% m- [* R+ d6 R# }9 D3 b
#include <linux/init.h>. n0 ^, K0 [3 t' e- m8 Z" ]
#include <linux/module.h>
' w3 [3 {/ u6 L/ J#include <linux/kernel.h>
! j/ r6 S  a4 O1 G2 ?#include <linux/types.h>2 q# z  N2 h- C. I, z& H. A9 n
#include <linux/gpio.h>
. q2 h: f# \, z#include <linux/leds.h>
, Q+ F) ?% y7 w3 [" {; O#include <linux/platform_device.h>6 c" S* }8 x$ E# Y
7 P9 |4 Q! D) t# c
#include <asm/mach-types.h>& N6 P  _; o6 Y
#include <asm/mach/arch.h>
& {) Z, u8 }& i0 K#include <mach/da8xx.h>) D8 H( _2 d9 b( j! N3 ~
#include <mach/mux.h>
6 K) K' E, u/ z9 U9 L. {; ~) I, p% b) I6 x2 Y. m1 ^$ i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- f% i/ \6 B2 d6 X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 P8 c* u" _' ~$ Q6 j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* L- D( j) L1 V) g+ F& j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: A+ t: y! D9 }% `6 x
7 s( l# q7 Q2 R" O/* assign the tl som board LED-GPIOs*/
7 R1 e+ _- E& w; ostatic const short da850_evm_tl_user_led_pins[] = {
0 y: [' M8 Z  z        /* These pins are definition at <mach/mux.h> file */- ]' S3 ]$ s6 s8 D% {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 b3 k" u! n% d6 E: t
        -1. a2 r) ]! M0 O" D; w# x. n
};7 p# R3 r8 Q# l$ J1 d% B
( T# ~% x% d& l0 E
static struct gpio_led da850_evm_tl_leds[] = {
; _* {' ]6 z. ]" u3 Z& J        {
3 l8 u7 W* P; i: U" E                .active_low = 0,
9 _' y9 n( X) M3 V' z                .gpio = DA850_USER_LED0,
1 x) g3 i5 r  v; ^* K$ j" M/ m$ `2 X                .name = "user_led0",
) X8 H* n9 Z3 K0 ~, v7 W& \                .default_trigger = "default-on",
9 n+ s* U, ^) `. A        },# Z  W0 X* k: Y  E, ?
        {2 y% N1 f  W* `. L8 \5 J  Z  A
                .active_low = 0,
( o  b# c/ o+ S4 Y) B, V                .gpio = DA850_USER_LED1,
# H5 R8 N9 v2 v                .name = "user_led1",( r) ~0 f! m/ I6 Y& M4 d5 Y  T$ Y
                .default_trigger = "default-on",
$ o2 |! B% v5 |- G7 A' h: h        },' {! }% }0 d2 x( u2 ~" M
        {
& t, z) j& _, T5 ?$ L                .active_low = 0,
, K3 c" e& H; J3 [3 [3 N% _                .gpio = DA850_USER_LED2,
" N0 e2 L; {3 @                .name = "user_led2",
! F" G. x: J1 w2 ?                .default_trigger = "default-on",
! Q% X6 I" n% a        },2 W3 H1 T/ x* X5 M
        {
3 A% q6 F) s" ~                .active_low = 0,
# Y, r& H& n  ~! j: c/ B+ R                .gpio = DA850_USER_LED3,2 a) i5 f& y4 v( z! ?
                .name = "user_led3",
. Z, F; w! u. e8 B                .default_trigger = "default-on",
2 X& R, ]# q& Y% ?        },
; Y5 w* [, i0 M% j" b( e3 B$ N" a};
( l% e/ ?' T6 X' \/ G- u
1 \9 p8 H0 O' A1 R$ e- O0 astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 @$ Y. C! G1 K9 B        .leds = da850_evm_tl_leds,
0 t( |% u' S7 Q$ y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! u" R* x( g6 s  K& _1 w
};+ T! Z0 N2 O: U/ Y3 e; b
3 t& _& C/ b/ S6 K9 l3 r
static void led_dev_release(struct device *dev)
+ ]( ]# H: e9 i/ D8 [{6 t: \* q: i  V) X+ F
};
5 _0 k) a1 ]4 k* S+ E+ D9 `9 M3 b% K0 w, d$ c
static struct platform_device da850_evm_tl_leds_device = {$ b; Q9 D- V+ n. \+ w2 F
        .name                = "leds-gpio",# G& [, y  o/ n: f
        .id                = 1,+ v; s4 P' Y1 b4 F5 y, M8 A
        .dev = {
# s. A1 u2 Z2 r" m6 m0 j4 m& k                .platform_data = &da850_evm_tl_leds_pdata,
7 h% A* ?8 l# c3 S' z                .release = led_dev_release,  b7 v, B, j9 f; Q% s/ ]/ b" C
        }8 k9 K; m$ Z: @& I2 ?/ I# g
};+ B) j% n! e/ f1 b( o! V
6 {5 R8 F9 W" _
static int __init led_platform_init(void)
$ s( V2 u* g+ x$ E  }: y{9 ^, Q" b+ V5 ^' p  p9 \& w
        int ret;
! E$ M6 c* ?6 e! \+ f* ~#if 0' C' h' M6 e2 Z  K7 V; N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 y0 f' W7 [8 e5 T  b; T5 ]1 G
        if (ret)
- r" B) e1 v5 |* `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 B0 R% c. i: K, |# L                                "%d\n", ret);1 p  P$ {0 x& K5 B
#endif% M' y- J! N- P) x, H! Y6 A
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 ~7 ?+ q' T: Z9 ]4 B        if (ret)4 i& b, O5 {7 t
                pr_warning("Could not register som GPIO expander LEDS");
9 j8 X9 P* m! a( Y4 v2 Y        else& ?4 f& o2 o+ T
                printk(KERN_INFO "LED register sucessful!\n");
) x. h# q  u- O1 T1 ~2 A" j  y+ L3 Q/ O5 e) C
        return ret;2 a3 [* [6 ~0 F" e3 ], y
}
* b+ h3 q4 |9 T9 J% c% P1 C2 i" g/ x+ z0 }0 X; j
static void __exit led_platform_exit(void), z- o$ G1 N. F
{
5 j. ^% H8 C( f        platform_device_unregister(&da850_evm_tl_leds_device);7 V( h) b  F0 V

4 ^9 Y% e& m3 l8 Z- i: L# u" H        printk(KERN_INFO "LED unregister!\n");
9 l1 f$ v! s% I/ E! w3 J}8 R- q, x8 y! V( n3 [2 h% w

. ]* N& R' ?% P  A' Kmodule_init(led_platform_init);
4 O  S. _, e8 V) h# Nmodule_exit(led_platform_exit);
5 e7 b' X( z) x( f+ J
4 f9 S- g0 z/ hMODULE_DESCRIPTION("Led platform driver");
; E' p5 T2 I5 L9 Q& j- Y- HMODULE_AUTHOR("Tronlong");) R+ a7 h5 W9 h! ~# f
MODULE_LICENSE("GPL");2 I% R7 \& j% }; s2 d

& {6 G- z) L6 x6 `; S7 k2 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-16 12:57 , Processed in 0.041162 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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