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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. D- R. o: `2 g# s4 V3 H#include <linux/init.h>/ t) x3 b" S( h) W! f; D
#include <linux/module.h>
- G5 M7 j  ~. I+ j7 u0 K#include <linux/kernel.h>
4 i/ x: a. e$ Y* D0 X1 T( y#include <linux/types.h>
/ G6 ^7 E5 X2 A% b#include <linux/gpio.h>
; K) W8 ?. L* ]9 j5 T4 p8 L#include <linux/leds.h>0 Y: ?1 M! W$ ^; E0 w
#include <linux/platform_device.h>$ ?$ A1 h7 p7 z0 z* r! I9 R8 q
& L+ i9 t% {, g7 ?4 d2 a
#include <asm/mach-types.h>7 x: o; z. b- s
#include <asm/mach/arch.h>1 ]! |$ C8 j2 W+ Y* O
#include <mach/da8xx.h>
6 Y, k7 h( w' S" ?#include <mach/mux.h>
9 K' s- o% G9 ~; R, B9 D+ W) j8 h1 l/ j" H# @$ R1 F) J3 U7 z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% x! A* {6 P  s5 h" w4 p+ @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& b" p- p) z/ b; @" n
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! U/ W5 y. A+ {) ^2 _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ h( z5 C- b2 m* ?0 g8 g6 p/ @
  g( S" X6 a' P- f/* assign the tl som board LED-GPIOs*/& ~2 ?# U& x- ]; P
static const short da850_evm_tl_user_led_pins[] = {
5 @' w! f* u) X: f, H3 q+ S        /* These pins are definition at <mach/mux.h> file */% G  k! u2 H. g- k3 |. Y2 M( Q5 u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 U6 U0 m5 l  m8 ]8 w* B- k
        -1( x. p3 d# g; q4 x, R' f
};  f, H! A8 U: ^$ P6 c+ m! Q

- z" X, D$ ?0 }* v7 Rstatic struct gpio_led da850_evm_tl_leds[] = {- A$ i& E0 i4 q' V7 E
        {
. I3 _% s8 |, T/ |5 D( I                .active_low = 0,
; j: b) E3 u( i% J                .gpio = DA850_USER_LED0,
' W+ ?0 W, |# ?0 p& C                .name = "user_led0",
) g1 z7 [3 ~; F5 Y6 H2 J$ i6 d                .default_trigger = "default-on",
, l3 D' J1 B! T& i* S, g        },
# n1 r8 F3 t' R* `6 d0 {+ T' S0 Z        {
% G$ C, D! x" @- Q: `# s5 {                .active_low = 0,
, K4 F1 W3 J+ s* q                .gpio = DA850_USER_LED1,
- T5 X: q  }: o& k6 l- a5 j                .name = "user_led1",0 d/ e% W$ S, [, J8 R
                .default_trigger = "default-on",7 i2 P6 ]7 i" J
        },
4 g; I( J' e- i& o; E" o        {" V# E) p/ F% f7 h2 K+ x
                .active_low = 0,% w+ N6 L( f/ [
                .gpio = DA850_USER_LED2,. h8 }! F+ P, }
                .name = "user_led2",' R" h% Z& G: z6 U
                .default_trigger = "default-on",
+ V+ D/ {* ^. N/ C; w' W        },6 {% Z, l$ E( W" M; t5 c# l
        {: r+ n' A- N+ k+ [) r7 _, o% k
                .active_low = 0,
8 {2 d8 J, F- R; E                .gpio = DA850_USER_LED3,
4 h$ ^& B1 i! K6 ?. h# m7 C; P- |+ `                .name = "user_led3",
* e. |6 F/ L8 y7 S" C5 i) n2 c1 c                .default_trigger = "default-on",
% k# v% N) ~: B1 l2 P* m        },6 }& Y) g- p2 s" L3 B
};
  P" B% Z7 l) `! m( F$ K
: b1 ?; ]) _( a. j7 O' L! l/ p8 dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ H9 g/ H+ I3 r9 E0 B7 B9 p        .leds = da850_evm_tl_leds,
/ n, p. U2 B5 L2 f5 \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( Q' d" ]( Q  P  z9 E4 @# V};
" e) ?0 c8 A9 G/ Z6 w5 D$ k5 w0 ~' Y. C/ z/ [
static void led_dev_release(struct device *dev)
- B. D6 e2 S0 v1 _: l- `( f# A{
) J. h" ?2 O" r& }1 f};
8 E: W, o( b4 H5 i2 b, I' g- Q; ^; _) t* B0 ^% m& f
static struct platform_device da850_evm_tl_leds_device = {8 ^, C5 G- [4 r" F
        .name                = "leds-gpio",
+ J1 e! t( P1 ~        .id                = 1,3 G# |+ J4 O) ~  T0 w3 B" d# M
        .dev = {
/ X+ g) v) e; ?                .platform_data = &da850_evm_tl_leds_pdata,. `9 A2 W( [! c/ T8 ?3 V4 d, x. z
                .release = led_dev_release,
1 g+ y. R3 ?5 k4 \$ U  V  O        }
( _/ M3 j& n  I/ w6 m0 s0 r* B};
# @+ G0 x+ s7 j" B( |0 o3 n; t( y5 D' w" r( M: X
static int __init led_platform_init(void)
* ~9 e$ g( `; [1 f2 t{
/ i/ U0 b6 A% [        int ret;
( Z3 y* b, r3 O#if 0
* k- b$ k3 W/ H% o* x/ J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 l0 D% ~1 [+ T1 e( C3 o; t        if (ret)  y5 [- w' u) B: Q+ B* P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% g/ Y6 J0 m5 O; r  o+ z- T                                "%d\n", ret);
3 L/ ?: u; [. j# X$ S#endif% ]7 k4 B: B6 X7 v: j0 H5 U
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ G: S7 j8 ^$ F6 G) z) n% t        if (ret)9 T8 _) G) ?% T3 \. P
                pr_warning("Could not register som GPIO expander LEDS");
4 s7 k5 ]5 `+ G# B. ~* o- G" `        else
3 q7 c8 D" j" P2 i2 p! A" K7 }, S) q                printk(KERN_INFO "LED register sucessful!\n");
* q. G( v; P% x: a; r0 p
$ f% F7 r; u7 h5 U" h3 C& }* {0 }        return ret;# V3 [  {( B; d2 R. p# X0 y  ~; }
}! D2 }7 D/ {" g- N- ^( M
, Z4 ?$ ~( \( j) {* P: Q
static void __exit led_platform_exit(void)
2 C. A6 U- C2 J$ ~% a{; n5 K4 y/ G9 M4 N8 S/ L
        platform_device_unregister(&da850_evm_tl_leds_device);# J4 j2 k! N$ R0 o. W; ]
4 f6 d) F9 U2 r- ?9 a! \$ l
        printk(KERN_INFO "LED unregister!\n");2 q% q: ]: ]+ j0 Y7 n* X
}
. ?( G: ]0 _6 d, l
# t: o8 x- @1 w' q/ zmodule_init(led_platform_init);
& [  x) p2 T& Fmodule_exit(led_platform_exit);
% e+ J9 X, X8 K$ s9 ]
. r! C( T! v& V9 s5 s$ Z5 S. QMODULE_DESCRIPTION("Led platform driver");
$ m4 A. X& e7 VMODULE_AUTHOR("Tronlong");. A; f: s; L9 N* R. S
MODULE_LICENSE("GPL");2 |4 n/ B) v3 {" E  N" l% s
- J" a0 W: y: d1 N: u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-9 21:57 , Processed in 0.039209 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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