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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- H- }" l% a2 F: J$ [& c
#include <linux/init.h>
% c* z. G, Q  I0 M; H: f#include <linux/module.h>
5 S2 m9 r  X; u& m0 y2 {- C#include <linux/kernel.h>
9 Q: U' O0 v: ~4 G#include <linux/types.h>% G8 y# G% a/ i9 }
#include <linux/gpio.h>
8 f8 G4 J* M0 g/ ]" w#include <linux/leds.h>
' ]! y8 o9 c4 a7 z5 R. u: b$ e#include <linux/platform_device.h>. Y* B' Z/ l& w6 E% S* P! [1 \' X

- D& u! \3 d: o1 d" @9 s#include <asm/mach-types.h>
. M1 y  T' B$ {7 \5 [2 e! i  P- u#include <asm/mach/arch.h>
8 ]% Q2 ?4 H8 \+ ?& p# x#include <mach/da8xx.h>
* e! h" v# y* X; ~0 r; }#include <mach/mux.h>
* v) l8 _6 `- `% I
6 H; W* u/ H2 O1 m: Z, d% T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( V( B  }) I# V% l' p/ c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! w) h( Z7 C6 T1 b: a/ X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) E* W2 P: Z: K' n. s7 `: p#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- o  ^' e' N1 P
) D+ U& |! |+ e$ x: \/* assign the tl som board LED-GPIOs*/: i. e) I" V1 _& i4 \+ l
static const short da850_evm_tl_user_led_pins[] = {  b' d: C. V# d
        /* These pins are definition at <mach/mux.h> file */
& D/ I  w. O0 K1 u% J* V" N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 N( m2 a  o! K( ~! y& C* ^
        -1& o7 R) ]& r* [+ _2 S8 }6 s
};: q2 n1 M+ u1 j8 d# D
6 u: {' y2 d3 {
static struct gpio_led da850_evm_tl_leds[] = {5 R7 }6 Z% ^& d
        {. X4 B, o' L) c" Y4 t! p
                .active_low = 0,
8 M, t5 g1 ^. }: j. M                .gpio = DA850_USER_LED0,2 d" o' J8 b4 z5 R6 l7 }
                .name = "user_led0",
, V8 Q( ?" N) d" q7 {                .default_trigger = "default-on",
$ m, j& d' {; A7 T        },
* a2 R* `6 ^, V6 h3 p. Y        {9 x8 y* S6 B2 v% f2 P
                .active_low = 0,
, M% K+ {3 f" i: C                .gpio = DA850_USER_LED1,
* w" q% B! x: _7 ~4 q                .name = "user_led1",
0 T+ w; Y6 L8 e# Z6 Z2 {                .default_trigger = "default-on",: Q2 @* X+ P7 s) j7 o
        },/ F6 k+ l$ X2 O: O' _) ?
        {
- C1 \+ ]7 s  n& Q" u$ X                .active_low = 0,
% f5 W" q, o8 `! J: z                .gpio = DA850_USER_LED2,
% `; j; U; v. s  b4 J. j- \                .name = "user_led2",
9 q0 t4 Z# o; e                .default_trigger = "default-on",; }4 ]* w! D0 G
        },
# F: e6 L0 I  ~% i9 W1 D        {
: @# q9 c  R; ^3 B$ ~                .active_low = 0,
( g, M5 B, W; v, o! _0 S                .gpio = DA850_USER_LED3,7 ?- [" a. D* W' z- O8 E2 [
                .name = "user_led3",
( |! i1 G8 {  \  v7 ^' T1 {6 O                .default_trigger = "default-on",; }* |& _. {$ y
        },
) Q& ?  u3 `, X+ P2 D};$ u' t5 {: R6 b% j# ^* u+ V' ^
5 J, [" _3 P) [( h# _/ d
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# x8 y8 ~) u# i5 {$ I        .leds = da850_evm_tl_leds,% W. k; w3 s/ u% x/ y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( q- \: q' j, ~6 s6 n};
4 p! }& ~# h: W4 E% u
% k$ s2 W6 q  \3 j& w/ T7 l  Dstatic void led_dev_release(struct device *dev)
) x4 |2 Y& [6 J8 b- ~% j( y{& M4 x9 ^" S; Z4 k) o
};/ E5 n* u3 I: V/ K- V
: X1 ^( @! l! d! t* z: m7 P
static struct platform_device da850_evm_tl_leds_device = {1 j$ O. |: K! ^9 K2 v# i0 u
        .name                = "leds-gpio",1 |# }4 ?/ r+ O- Y7 {9 L! |
        .id                = 1,
: R8 N0 B9 T  ]        .dev = {
6 H8 T1 `& R, r# s. g- q                .platform_data = &da850_evm_tl_leds_pdata,
. L8 q- G* |+ p- C                .release = led_dev_release,7 @& V) O( `, {. m  G1 T/ J& U
        }) L3 d0 a$ d6 t1 R
};; X  b/ m7 _8 j" A6 m

! J/ F0 G+ e" o' c+ u  ^+ `2 E3 c4 V* Cstatic int __init led_platform_init(void)$ x6 n6 @) O! n" o2 ^
{
; Z" s% ~% j9 b) X7 t9 u2 ?        int ret;9 n+ `! O. b# e3 M, k
#if 04 ]& x" l: W  j# i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. R' O. A* T% K        if (ret)
% a8 e4 k! u1 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" X2 g; o: j8 m3 `' D- `                                "%d\n", ret);
& x; i: `  V7 w4 i& M% o. ]% z6 z#endif
% c# d# N+ s+ z# h5 c        ret = platform_device_register(&da850_evm_tl_leds_device);+ y& e5 U; O  c/ j2 i* O& t' d, {1 w
        if (ret)7 M. ~& `9 b2 M% X9 x
                pr_warning("Could not register som GPIO expander LEDS");4 r+ ^% w+ ?8 |
        else9 j  D: D. l# C2 P
                printk(KERN_INFO "LED register sucessful!\n");
! q- G1 T# a+ O
  x. t0 l; E6 O% A# P9 t* ^        return ret;
- F5 r' @- q: J. a+ p}3 E: Q+ u- J4 r- X' C

: c7 e/ P' |1 h2 k2 x5 u7 c: k  Xstatic void __exit led_platform_exit(void)
5 A3 [' o+ p2 W: z, |% `8 g{! c1 a: R) ]4 l
        platform_device_unregister(&da850_evm_tl_leds_device);: w( z. P: R& M# M
7 C; H: B6 y5 H) m8 l7 T6 |
        printk(KERN_INFO "LED unregister!\n");+ N& N* P! u, @9 f2 ~1 {
}; l  L+ Q, }9 D: H" w9 h
0 {) J/ @( t& C% U( o
module_init(led_platform_init);. X! Z3 y" R1 U% i
module_exit(led_platform_exit);4 z4 M6 r+ L) G2 E3 I1 r
9 @  K- ?5 ?( e, S5 V! g3 o
MODULE_DESCRIPTION("Led platform driver");
7 w. x; K! I6 Z" _$ x! Y* ZMODULE_AUTHOR("Tronlong");3 p) j0 @% y1 {- M5 T" A# l
MODULE_LICENSE("GPL");
3 I7 s; C& u# ]$ h. f; d' y6 ~. m  z# s9 r0 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 22:51 , Processed in 0.045469 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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