程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" b( g# D* V. e! k#include <linux/init.h>
$ z  l4 v- W3 {8 u& `. ~#include <linux/module.h>$ P, [# Y$ o" T; b: q. S8 {
#include <linux/kernel.h>
. s" b+ K9 o% n4 P* I7 {" x  _/ V#include <linux/types.h>' b. \7 n3 d. t2 A. ^4 J/ c
#include <linux/gpio.h>6 t  f$ O7 K  u3 _
#include <linux/leds.h>2 G4 ~2 p( o8 H; `  P* ~+ Y
#include <linux/platform_device.h># \' b6 Y) J4 ]' d: W* ]

/ x* d& M- c; a  \; W- K#include <asm/mach-types.h>- K2 k1 y5 z8 }" s& Z8 g
#include <asm/mach/arch.h>0 j3 i3 \4 k1 Z/ D' C
#include <mach/da8xx.h>
# q$ G% |" y! {1 ^#include <mach/mux.h>
1 c9 N6 o& D* n5 ?6 Y. o
' |; |4 C7 V# e7 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 J8 r0 `5 G" M, [: B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# A* n' E. z3 E0 R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& J9 e9 Q; K8 D" m) b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- e$ D  w8 k/ _% `' c) ^4 I. y/ N1 s* a  A  v: _
/* assign the tl som board LED-GPIOs*/
" ]& p6 i) h2 Ostatic const short da850_evm_tl_user_led_pins[] = {0 w9 n% r2 b: d
        /* These pins are definition at <mach/mux.h> file */0 r, c/ ]3 Q6 |, a- t4 }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, O" L( |" @' e$ c" p4 L0 U3 r        -1
1 n) X. T) @- a5 Q9 o7 W};
, |: [! m/ J! v7 e# A! K! W( c. o+ i% f
static struct gpio_led da850_evm_tl_leds[] = {
: W( G1 P# F# }" U1 n0 v9 X# g! l        {
0 v% {7 V3 w% x& r                .active_low = 0,+ E1 A" ]3 i' f2 i' Y
                .gpio = DA850_USER_LED0,. L/ M5 \0 d3 [3 k
                .name = "user_led0",
& H4 Y. v4 i9 n; s, z2 b                .default_trigger = "default-on",
& i9 I7 m/ M2 G, s1 F) S& E        },) v2 Q% Q4 d5 U; D# m. d
        {) @7 p  w, h) ?( f- L; B4 S
                .active_low = 0,
7 |3 W0 e1 M! M5 [: H                .gpio = DA850_USER_LED1,
; u+ f- p1 u; S; t+ k3 ]                .name = "user_led1",
* D: n$ _# q) ^# `7 t) `% `* p' W                .default_trigger = "default-on",: r# U. r) K" B! d( b6 B
        },* ~8 n2 o2 I" x
        {
. H8 C5 g. `6 }                .active_low = 0,1 I2 l. R; v/ l+ T
                .gpio = DA850_USER_LED2,- B" ?# q9 }! k! N# E! F% W
                .name = "user_led2",# b* v: L/ Q- J) h/ k* y
                .default_trigger = "default-on",- E& z5 u1 c3 B# x5 n& r7 Z
        },
" M* q$ A4 t! X2 W        {/ L2 ~0 `  z+ }1 Z1 p
                .active_low = 0,
' D/ N9 i% G1 _  ?! F                .gpio = DA850_USER_LED3,5 b% `6 r9 l# o
                .name = "user_led3",
; \7 w9 \, w, G; j7 Y                .default_trigger = "default-on",
; A, \$ M, F, _9 }! Q; s5 \        },
* ]9 f$ G# ^' |: W) q) Y};% m9 Z* E1 ?# U
2 |. D8 Z- C4 d
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ X0 e! k9 ~; x
        .leds = da850_evm_tl_leds,
( e2 `, |2 d5 ~4 I  _; x8 `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ h- c! e# Z# G* V};" S5 K8 a/ J2 U) ^. Z6 W
5 U, S5 }/ {/ Q: [3 F0 J: W  M- j
static void led_dev_release(struct device *dev)
# P2 e5 `+ n8 ^# \, m+ y+ W1 L{
0 T# q# ^8 x/ p9 t6 E3 p) T};3 \, `7 k/ F/ N4 J9 @
& E) c* q5 }( t
static struct platform_device da850_evm_tl_leds_device = {
7 p2 H- R9 {$ m1 s" |; V/ ~8 J. ?        .name                = "leds-gpio",
' l) ^% l. i" r5 D$ T0 A& B. V" A        .id                = 1,
0 o7 O( m+ z( Q        .dev = {
2 R$ h+ B. v3 \8 P0 w                .platform_data = &da850_evm_tl_leds_pdata,
6 o8 N& y& L( n* }+ }5 w                .release = led_dev_release,! R* x# H  [3 @1 L: i: Z4 l9 |$ g
        }0 s+ x( I( _$ o1 F4 {
};
$ J( S) B$ r$ G8 W$ v! {, j& s5 O% M3 ]$ r! R# w, Y# V
static int __init led_platform_init(void)  H* J0 F- l/ o1 \0 }$ ~
{3 F  u' G0 V( H* S) F, `2 R
        int ret;
1 U8 M. s) N% C0 v#if 0, b5 O4 ^' _2 e9 R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 D7 T. [' z% L; A" p, Z: j
        if (ret)
* B5 C  q+ ]9 r5 h* o* F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  i7 T' t, R& c/ H4 y                                "%d\n", ret);
1 {: V0 _. g2 K6 [) }+ J#endif, F6 P. O. B8 F( Z3 j
        ret = platform_device_register(&da850_evm_tl_leds_device);+ }0 z% L  ]  O, ^3 F4 a
        if (ret)
2 x& K$ V( i5 _$ p5 U                pr_warning("Could not register som GPIO expander LEDS");
4 A* V* E4 K# z; w- _        else
3 `0 U8 z' x# ~) U: `/ h2 B- K                printk(KERN_INFO "LED register sucessful!\n");
8 @6 c. a; k; @( J0 }' t, T! ~, q8 B
        return ret;8 q% `5 W( k! Y4 u9 Y( M, H
}0 Z# Y7 k7 q1 k- U. a5 q
2 m6 T: @6 e) o3 b5 q9 V8 Z
static void __exit led_platform_exit(void), t0 Q4 T! f% L7 a
{! }! _6 b, o- \' \( c
        platform_device_unregister(&da850_evm_tl_leds_device);
( Y0 S. B8 x# n4 E6 r# Y
8 A5 I; ~; B5 m2 u+ d2 F3 ]4 G        printk(KERN_INFO "LED unregister!\n");
( |$ Q$ X0 Y( X' w( S/ M}; b0 _1 a5 M. s" o  _
( i  V, |/ O9 O% {
module_init(led_platform_init);! r: f% j; _4 G: Z/ C# t, U
module_exit(led_platform_exit);
7 M) v  O$ v# A' u4 M6 Q. q& Z. H2 x: U0 v* q
MODULE_DESCRIPTION("Led platform driver");; b9 S0 x1 M5 Y  i9 N) {
MODULE_AUTHOR("Tronlong");  v" u# M' q, O8 `3 J& G! L
MODULE_LICENSE("GPL");) P  @( |8 a& |

1 I( H+ A2 ]' \5 |* ]- z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 12:47 , Processed in 0.037285 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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