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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ T- d! M" ]- I- s* x. [
#include <linux/init.h>
) r! C: ?7 S! z* ~1 }#include <linux/module.h>
& J; X  A- C2 F$ B/ o2 m#include <linux/kernel.h>, \& C2 y  a( E0 `4 f9 j
#include <linux/types.h>
1 ~# n  c! y! v#include <linux/gpio.h>6 Y  o) z+ n+ A/ a
#include <linux/leds.h>
3 d; W9 F7 ~+ l$ o2 o% {% Q/ ~( |#include <linux/platform_device.h>6 G. ?+ ?. }+ z
4 O6 Z6 h2 {$ {8 J4 }$ r# [* Q
#include <asm/mach-types.h>6 L8 J$ Z1 f5 e' g# B' b  m+ X
#include <asm/mach/arch.h>1 }# _8 e1 c9 `5 ~! ?- h
#include <mach/da8xx.h>6 i5 ~2 i, |) L  t
#include <mach/mux.h>1 [  _1 H; _+ O% Z, {: i' O" o
5 m5 x/ ]# m7 r1 Y. _3 P( V6 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& ^) e: H! C$ R* w2 D7 V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, S  E1 c" \/ e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ H6 X) a' a% ]- s. A- W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ q9 l. p" w4 z1 @% e, n# p
3 w& }$ X- N' k! U9 ?6 o9 B& P% U/* assign the tl som board LED-GPIOs*/
+ K  L5 O% L( y3 a7 h4 g, i* D) lstatic const short da850_evm_tl_user_led_pins[] = {- e) @/ I1 x& e: p$ ]* P! T
        /* These pins are definition at <mach/mux.h> file */
7 R. O; m6 [+ D# a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
' k1 u( D: Y! T' P# K) ]( E% L        -10 ^; C" |5 e" [& e
};
6 M$ ]  v) m. R; P0 f" k. e# ^& h$ a- E, E* p2 x5 Q
static struct gpio_led da850_evm_tl_leds[] = {& W4 x; d+ S1 [
        {
* w1 A8 N2 K3 r7 ]* }: _7 W                .active_low = 0,
+ \+ `; q7 V; T( E8 n1 ~' D                .gpio = DA850_USER_LED0,
0 {; w: I3 j. m& v                .name = "user_led0",$ H& V' ]* P- V! {" h/ h  b( ~
                .default_trigger = "default-on",+ B* ?9 l# G9 t: Y1 S
        },! g; I# w) j; F1 _5 k
        {
( t% f1 _& F( A0 x( v  U3 M! [/ F                .active_low = 0,
6 G% ]+ v5 D, Y* j                .gpio = DA850_USER_LED1,2 m, m  u% ?! N& L0 h
                .name = "user_led1",& j; a: H2 {9 v$ {1 t
                .default_trigger = "default-on",  [% `5 K7 L+ [# i" n5 v
        },
0 |6 U8 c: a* R6 w4 J( ~, z        {
* ~) Y! ]4 K, c9 I0 j* w1 \                .active_low = 0,
( k, [: \# u8 v9 W/ \                .gpio = DA850_USER_LED2,
. Q  s' q7 r, i1 ~: B                .name = "user_led2",& j1 U. n  @7 [& q# A' A
                .default_trigger = "default-on",5 ?. i" `; ], N+ ]1 g3 ^
        },
% h4 O9 W. l4 f" u! D1 g; z        {; {& U3 c3 R4 r/ h
                .active_low = 0,
5 c- }3 y4 ?/ ]$ O& O" X4 [                .gpio = DA850_USER_LED3,
, D0 x' K2 v9 U) ?: s( M                .name = "user_led3",& G$ N) o/ h# D7 U1 z5 K( c5 ?
                .default_trigger = "default-on",
! U4 \( Y9 N4 M% L7 H, X' ~        },/ y5 D& `+ q: t
};
, v0 q  R3 u/ H% \6 _! u1 ^; _: Y
: K4 J/ i1 K: ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ i8 e3 x& j" |# q7 h: U) g; f        .leds = da850_evm_tl_leds,2 v# k2 Z$ k( M! q: K+ V/ M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, k6 h1 D- H8 `- |9 J& X
};
1 ]) y, y3 \$ ~; G9 G3 t$ r9 u
4 |7 d1 y% Q1 f2 x) ustatic void led_dev_release(struct device *dev)
. ^& t3 `- d- Q{+ K* I2 t3 A6 h) L
};9 B8 Y3 B4 @1 N# w$ ]- k) l6 R9 \
" t2 l2 O1 N0 F. j2 ~5 |: g7 k
static struct platform_device da850_evm_tl_leds_device = {8 W9 n  _, W" [8 P, S; K
        .name                = "leds-gpio",
( k! ]" P. [& c# [& q8 E9 b        .id                = 1," H/ ]3 m. t" C3 f5 s7 X
        .dev = {
  x% u, L9 v0 Z# u1 [                .platform_data = &da850_evm_tl_leds_pdata,& C1 ~) G: u8 S
                .release = led_dev_release,' W/ l3 B/ M) W& I5 f
        }5 `; i+ o0 \; A* n: V4 n
};
6 J2 H; |& f& Z0 t; l7 Y/ ~0 j* U3 y7 ~; E3 B5 |/ f0 \1 f
static int __init led_platform_init(void)
3 F/ B! g5 l! q* A  f- q{
% @9 H0 T' I4 d0 q        int ret;2 ]  Y1 T, P6 `4 [" _1 g* c
#if 03 F; @$ K  L- W% X" L! b8 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 H9 y' K8 _) e5 r4 v
        if (ret)
% _, R6 R6 @# C& C" h9 l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! m5 T: N' W  v- P% j* o  L6 {2 q                                "%d\n", ret);) E3 Z4 b; z& H! C1 o; s" j' o' L
#endif2 l& Y7 Q# L- @! [3 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 n+ s& X6 t4 r" ~) u/ y6 C        if (ret), b" y& `. `3 U
                pr_warning("Could not register som GPIO expander LEDS");+ v7 M6 t6 V9 W$ ]3 S" c7 _
        else
" ^# Y) W  I) C! }                printk(KERN_INFO "LED register sucessful!\n");' C4 D7 Z/ u: F2 z7 @) z' }
! Y7 X. g6 t! N$ y, o5 [8 ^6 K
        return ret;. u  c/ j0 v" }  V3 E% h
}
" Y5 R! @2 E: v) }" U; o* h4 K2 u; w) J2 W& {
static void __exit led_platform_exit(void)+ r5 C+ p% Z7 \1 R* e* L
{. F) d; u  i0 v$ ]
        platform_device_unregister(&da850_evm_tl_leds_device);' m! X$ Y; j$ x* X' _
" h0 \5 }, Z7 h
        printk(KERN_INFO "LED unregister!\n");
6 q& ^3 ~6 {6 Z: m% I}
: f& h$ ]% t, @
: u4 x# f' J# P$ M; ~module_init(led_platform_init);
  q3 a* u7 j# w" V, `- s3 c4 @module_exit(led_platform_exit);8 h8 X0 c* Q  ]
' p, X* E, d. j+ i, B* m  z% E
MODULE_DESCRIPTION("Led platform driver");
, K" N* E, Q* Z1 U; bMODULE_AUTHOR("Tronlong");
, A/ V* p: T. _! S2 ]MODULE_LICENSE("GPL");# U$ R9 `9 Y/ N/ I, f

2 C7 _# q  g- k6 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 20:53 , Processed in 0.040052 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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