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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 w( i: Q; C) j5 F* `#include <linux/init.h># k/ v. [& E# g
#include <linux/module.h>
# K' c/ _8 g' q! H; p/ u#include <linux/kernel.h>
* F# ]' k# O' x9 Y#include <linux/types.h>+ J5 ]- y+ b/ c2 D. B
#include <linux/gpio.h># n% a  c/ E" A6 i0 S
#include <linux/leds.h>
. Y- j* ]% J+ E- ], j1 k" w#include <linux/platform_device.h>
9 K/ T, K% X0 n- k# l5 C- q
% O+ q+ I3 E* `% t/ s#include <asm/mach-types.h>! @4 g7 I6 C1 d2 t- c/ [& @" P9 [! z
#include <asm/mach/arch.h>' \- I# `1 _' m- D" K
#include <mach/da8xx.h>% D' |: M- x1 Y% ]2 J
#include <mach/mux.h>
" _2 n8 h  l" d% V  r# d+ q" Y& N- D* _
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& [  ^" e/ h0 t0 [$ r7 t& x7 O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# s9 l; E( n: u$ V9 k( t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 L$ ]# a% g0 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* z4 Y! R7 y6 ?, x. x: P# f) b+ X1 h, j1 X' J- @; _
/* assign the tl som board LED-GPIOs*/7 e2 k6 g0 J1 H# `7 p* `1 q; A& n
static const short da850_evm_tl_user_led_pins[] = {, d6 }) e$ K9 ^1 N
        /* These pins are definition at <mach/mux.h> file */
7 V- @- C, \$ b7 w% h$ w9 i8 [; h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 L' m! V+ t6 \  ?4 F        -1! W4 ~  ~' R. U+ ?
};# q& u2 V+ ~: l( b* V/ x. l' k4 J5 c

& C* g  K) ]! T% a% z, z. `static struct gpio_led da850_evm_tl_leds[] = {6 N1 p4 ^) D1 b, y6 p! X: j
        {
2 h& e. J% j& @9 X* _/ I& A                .active_low = 0,
1 v3 Z, K( n/ v/ P- A                .gpio = DA850_USER_LED0,
1 W; T' \9 [% e* m                .name = "user_led0",) P1 R9 {$ t& [
                .default_trigger = "default-on",; q/ D; ^0 \2 X: F. B7 i+ @0 K1 ~
        },
( F7 p" [% E, X  {1 _1 `        {
: {+ v# K$ Y2 z7 D                .active_low = 0,
8 T& t% e5 L/ ]. U9 U; v( B                .gpio = DA850_USER_LED1,; [% d7 e/ @6 m+ W+ L2 C6 ^
                .name = "user_led1",% b$ ]; S3 ^4 n
                .default_trigger = "default-on",
' F& @# i4 Y) S0 t! N) R        },  G) R" e" J/ b; p
        {
4 N9 e) ]3 F! j0 u                .active_low = 0,
1 }1 l3 z/ u+ c& \* v: H9 v                .gpio = DA850_USER_LED2,! [1 g2 ~6 {; z) A% b+ Q0 J
                .name = "user_led2",
; X  E# Y# Z( G& Q& d                .default_trigger = "default-on",
1 m" g: X- @& w* ]' `8 k# m. m; C) n        },
4 {0 E7 B! y' X; }        {
% J; b7 D, H0 V  C9 f2 `                .active_low = 0,
7 M' H- H8 w" R% d$ j; B                .gpio = DA850_USER_LED3,
* j% C3 c& s9 g+ L! _3 {, c6 z                .name = "user_led3",; ~( N$ d' W5 U2 ~0 _
                .default_trigger = "default-on",) t$ a% ]* S- C" c, ]1 c
        },/ p+ r, Q/ G! J5 l0 e7 b
};$ d. v4 X% |; o" D: v
5 K" n  Z9 v0 L# S7 z  F5 C3 E- w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 A$ G, w2 T4 }' J4 ?9 n: G        .leds = da850_evm_tl_leds,
; m5 Z" f4 _& {# V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 U0 o, Z, s* J, u1 w: L};
5 U) _  N* q" Q: X# J2 _
$ s4 F% Q3 t: ?+ K6 g( ^. r" W) ostatic void led_dev_release(struct device *dev)3 v1 o9 C. z, a/ |# y4 g
{* ~! Z5 o- s: `/ V' u/ q
};  q* j- s4 r- F4 D% s# c" r! g

) i; i' T- y4 _7 Mstatic struct platform_device da850_evm_tl_leds_device = {
9 t! t( ~4 i' C" u3 M7 |) U. F0 `: P        .name                = "leds-gpio",: O( W# X* T7 N& ]* q) h
        .id                = 1,6 B5 u) Q5 n. `, ]5 I
        .dev = {
% c  g3 O2 s6 }6 [4 M% _3 a( p                .platform_data = &da850_evm_tl_leds_pdata,
/ h* y( P. }/ G0 R( C                .release = led_dev_release,) I, o6 J8 {4 Y- z, E
        }
/ b+ s, i4 E; v};
; R- \- D' F! X
8 `: h  U' ~: B% g2 Kstatic int __init led_platform_init(void)
; I- B% {! w. t# l4 h, S5 a( F{6 E2 w! o! ~  t' m' P7 _
        int ret;
1 l3 f  b( n" a- I#if 0
% d3 H1 }; N. ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: ?  d% B- m9 A9 y
        if (ret)2 p: J8 q- M$ R* p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! r( c$ T. h) D/ `. Z- _8 P
                                "%d\n", ret);& V1 Z2 C5 f/ S, Z: R! T
#endif; S( V: R* R! C
        ret = platform_device_register(&da850_evm_tl_leds_device);) `6 X% g5 C. P& F8 n
        if (ret)
! l# Y3 x6 W8 ?  C% E9 P+ f8 K$ R                pr_warning("Could not register som GPIO expander LEDS");
, ^% {- H' g+ K$ J. g; I7 X' k        else
% o! _: r, d  R9 t8 y' Z) Z3 ]                printk(KERN_INFO "LED register sucessful!\n");
  B0 m4 x# w5 s7 _  i
3 o& O9 A. U: M# V! ~' \        return ret;
1 h# c, S: e- T+ n, t! F% j( u) o}
2 Y" d# c1 ^! v4 r) K; T4 l; x
; V* Y( e! ]: f+ {8 l5 Astatic void __exit led_platform_exit(void)
( S  q4 m# @# v! F7 U{
+ a; X1 _) I6 T        platform_device_unregister(&da850_evm_tl_leds_device);: y; Q" k6 F7 ^6 v" z7 M! P

1 P4 Q* \7 }0 G' n; A, e        printk(KERN_INFO "LED unregister!\n");8 R5 a+ g( a' m2 U9 G' h9 N" m6 \! E5 ~7 I
}* s! Q& K9 N# O- t5 _

& F% P3 a  q: W. [. umodule_init(led_platform_init);
- E: Y1 G' }; O- Gmodule_exit(led_platform_exit);
% J$ e6 c9 }& i5 h$ X! D2 `: Z1 i# q7 H
MODULE_DESCRIPTION("Led platform driver");
( x' n2 _( J7 X) g) fMODULE_AUTHOR("Tronlong");8 y0 F4 d4 a1 d9 a# ~
MODULE_LICENSE("GPL");
2 o0 Y9 z4 o/ K, E6 `0 A) l& F1 a1 a- z$ l; T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 00:59 , Processed in 0.038874 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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