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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( O$ ?" A3 d. _+ r) k#include <linux/init.h>
& u6 [' v( M3 r: }' U$ o+ j#include <linux/module.h>
( k6 e8 i3 r# q, B1 Q; V( `( F' h#include <linux/kernel.h>9 j6 {* m3 _, Q6 d7 k
#include <linux/types.h>0 _% o. K9 n! g1 T$ t
#include <linux/gpio.h>
% U( k' s" I# c5 Z/ I% l1 I#include <linux/leds.h>
8 N# X; q" q+ s: q6 ?+ t4 c#include <linux/platform_device.h>
. s; D) D" C  p) ~4 _( u# f% d" u5 N! m2 }! D* _3 m: w3 m3 L0 i
#include <asm/mach-types.h>3 G% [$ E3 s3 B! F8 \% f
#include <asm/mach/arch.h>
! f$ Z0 F( u/ l4 I#include <mach/da8xx.h>$ u7 F5 A' ~$ x
#include <mach/mux.h>
$ ~  h* K& r( J' G0 d( z- ^4 E* }0 o+ x- s7 m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) J; B! P; i0 ?, r#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 U' L4 @7 I7 ^3 h# L) _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  z9 j6 f6 {& |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( c/ _' N3 s  A, s+ Y! i4 ^$ w7 x! k3 @2 t
/* assign the tl som board LED-GPIOs*/
; ~# [' Q. D! X: Vstatic const short da850_evm_tl_user_led_pins[] = {1 h4 h) [0 J6 m  [
        /* These pins are definition at <mach/mux.h> file */
4 T& @. c# r2 e; O4 P" `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. g, ]0 V3 g7 J9 \# |5 {  i        -1
! {3 p$ L/ C1 |: R" t; B};
. l/ g9 j. y, v' i. P. ^9 G& `2 \, A6 T
static struct gpio_led da850_evm_tl_leds[] = {
0 m& D) q3 d$ o& D: M! i- B3 N        {
& n# ^8 C/ }( _9 I                .active_low = 0,; Z6 z) n2 `$ v8 ^" Z
                .gpio = DA850_USER_LED0,& H5 C0 x& W3 p7 W4 X! U
                .name = "user_led0",$ ?( i) Q  B  ^  v% |/ g; p* @- Q
                .default_trigger = "default-on",
: |& @6 l+ s: d* e  v( ~2 O        },
; M9 V" }$ m3 m        {
0 q* T8 ?, Y" }' x, |- h& U: V                .active_low = 0,
* x6 ^) d) O' j# `/ Q6 r                .gpio = DA850_USER_LED1,# B5 d3 W8 y+ I4 C
                .name = "user_led1",: ?7 C: |, U) D4 e
                .default_trigger = "default-on",
9 \& w0 w7 o( V& v+ t6 d        },) h; Y! \# v8 L$ }
        {& b2 ~9 c" G5 R. |2 q: K- _- d. `
                .active_low = 0,& c% |! I6 I+ ~7 |7 w& w
                .gpio = DA850_USER_LED2,+ E# W. i; \2 {9 r( e: T
                .name = "user_led2",
( N6 J  v2 R4 H) x. V" {                .default_trigger = "default-on",2 C/ @+ u. U. `# f
        },% C9 m' l: C; `* T; z+ \
        {6 |; e; U+ E8 U9 r7 E
                .active_low = 0,  G. q3 U# h7 J! {: w8 H1 M7 b6 ~
                .gpio = DA850_USER_LED3,2 r9 P4 B# C) Y7 C8 x+ H/ `
                .name = "user_led3",* ]. |5 S. ^) k! \
                .default_trigger = "default-on",
) w3 y. Y' X) ?) n        },2 q* [! j8 s) X
};
/ o. L  f$ ]" p
: K) R# F! N8 Q- I9 @7 @: v7 i; S7 `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, u  f& W- [1 y0 I% A
        .leds = da850_evm_tl_leds,) h! i9 K3 m* z& Q+ {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 y( `6 S% d% |& O) s0 z; P) j! l};# O) z, V) U& X/ t

% y3 N2 i" R" ]: b6 Dstatic void led_dev_release(struct device *dev)
5 \* Q7 _) x1 T% w; V{9 ^6 h4 {# C3 V, C- C
};- ?0 t7 C0 F) q; [; k
: _' ]6 r% l% K
static struct platform_device da850_evm_tl_leds_device = {  z. o8 C  ~. ?0 O1 w/ R
        .name                = "leds-gpio",! o6 W2 o! E. m4 A, C
        .id                = 1,/ Q4 c+ a# M# z
        .dev = {8 }( C8 U1 E: a- T5 x" h+ W
                .platform_data = &da850_evm_tl_leds_pdata,* s2 n* X0 w# A
                .release = led_dev_release,! m' |+ q3 V9 v- s# t* B+ L
        }
$ Z9 k" ?- c+ J1 y/ e) Z};
  ?4 o/ }9 ]* ]# b- ^+ u: h8 y
6 }7 d% q0 k: U4 ]static int __init led_platform_init(void)
1 b; G- s' Q, r1 [7 `{1 y1 ~8 A& G1 O
        int ret;+ j  x4 M- b+ O3 K) S4 e! y
#if 0& ]3 X; l  T) E  ]* H4 S% v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- [6 F: J4 G1 R. _' ]
        if (ret)
* }, i2 D% {0 r$ Q: [5 a9 {  z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' V- p* n2 B) n+ T/ ~" n                                "%d\n", ret);
1 E; b. @, n5 E( u#endif
5 Q  L8 S. M6 \" S        ret = platform_device_register(&da850_evm_tl_leds_device);9 d; z* M8 g! w4 R7 n& G
        if (ret)
' W9 Q& t( i& K" p% X: i                pr_warning("Could not register som GPIO expander LEDS");
$ k* x! g  Q8 T" t; J2 X' N        else
( [! h0 e, `+ ~6 y& Q2 w$ Y  F                printk(KERN_INFO "LED register sucessful!\n");
3 F* B- a. P5 N7 |- f8 Q1 ?5 @1 [2 G
        return ret;
: E* i/ w! P0 v' i2 U1 s}3 a' }6 M+ }) Z$ F' l5 Q& b
" N1 ~/ l: N) h- d1 `- G
static void __exit led_platform_exit(void); I7 ^0 h  Y& ]6 {( Q5 ]
{
( G; g3 L% V% r7 b6 ~" F        platform_device_unregister(&da850_evm_tl_leds_device);: \' R  s0 u6 p1 @' v4 h. h$ Z  _. S

2 q+ J- z/ H2 d' y( ~        printk(KERN_INFO "LED unregister!\n");, t& v4 D/ n! \$ P
}
( ]  p+ ?" M, ~$ v: @) l  o! `# c7 ]+ I' x
module_init(led_platform_init);; }/ _$ ?( f7 R: b! g8 L1 K6 W
module_exit(led_platform_exit);
- `1 I4 P. {; H; _  N* Z0 p/ w  P& h5 w1 C% e
MODULE_DESCRIPTION("Led platform driver");
/ r$ A1 C0 D% B) X8 d1 |' ?3 iMODULE_AUTHOR("Tronlong");; K: W, ?0 ~0 j9 m5 e6 g
MODULE_LICENSE("GPL");
. ^9 j( O8 Q% ?+ w% p4 U& U4 ~& Y( O# F! \% n5 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 05:38 , Processed in 0.037890 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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