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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* a4 s) ~$ ^* O2 {$ a' c+ M' A! r
#include <linux/init.h>8 Y6 J% v7 q- `4 Q2 E2 F
#include <linux/module.h>
# ~$ F2 ]! O( u% v; k$ t- o* S#include <linux/kernel.h>
6 C/ S, |) @, U3 ~+ W#include <linux/types.h>* D, T$ J3 h9 y3 T6 E
#include <linux/gpio.h>
- F6 f. y( ]- Y1 T; b#include <linux/leds.h>
: |8 t# j* ?8 `% P#include <linux/platform_device.h>
3 k8 M0 |0 }2 e% l/ F( J
3 _" D* @. f/ J9 O#include <asm/mach-types.h>
' M; E& o# V' t6 W% b$ m  \1 M# o; S#include <asm/mach/arch.h>- i  R" X5 @1 K" K" n% Z6 G
#include <mach/da8xx.h>! ^$ ^2 f) f, c6 e- N
#include <mach/mux.h>" z/ p! g" ]0 D0 a5 u! B- P

! ?" s: o4 W  ~, i! p, H: q& p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 R4 L; y' B4 g6 q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& j8 R6 r* a1 t  p) F" o+ s/ n9 \#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( @" e* B9 w$ ~! N- e7 Q# }  a#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 O8 g* g! k: s3 H! T0 r" `( o' K0 k
/* assign the tl som board LED-GPIOs*/
. L( k8 q8 n0 x$ n7 Qstatic const short da850_evm_tl_user_led_pins[] = {1 W2 _2 i; H! K0 P; \! [# H% R
        /* These pins are definition at <mach/mux.h> file */
, {/ t4 q; r' A0 c, G$ r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ ~, W0 |3 Y$ ?' e; N        -1
. o- d2 |3 M; q' N/ H* C};
; f' {( S# B+ v+ P" \2 l& A1 k" B! E$ {- g2 a
static struct gpio_led da850_evm_tl_leds[] = {9 e+ f7 M7 `2 V9 S3 C5 j
        {
4 n  e3 x) Y. t9 l9 V) r                .active_low = 0,
% f9 z  O$ d5 z# V3 ^. n% c- W                .gpio = DA850_USER_LED0,! b1 V4 O% W  C# B- h- Q& l, v2 X* T
                .name = "user_led0",
, G! l9 I4 A' h7 q# x                .default_trigger = "default-on",0 t' S  F0 p! A" m
        },
8 O2 i# s0 u5 A" `; B% g        {
6 p+ D1 O. ~) |" g                .active_low = 0,7 Q+ R3 v! u" [4 z. h0 [( n
                .gpio = DA850_USER_LED1,: Q9 d7 P6 w6 v' f: |
                .name = "user_led1",4 ~7 `7 }+ F3 @( V; }: Q
                .default_trigger = "default-on",
. Q# u- W. c0 g, A& ?8 ?        },$ h" [7 t6 u' J$ c; W4 W) _
        {# c) V; ~0 E: A3 M8 F
                .active_low = 0,
8 G0 u4 \' V  @. w# }1 d                .gpio = DA850_USER_LED2,
- M# r2 F8 V% `2 e1 p4 u! H                .name = "user_led2",, I/ Z) t! U& e) @+ o) e
                .default_trigger = "default-on",; B3 P$ E+ S; F$ U2 p9 U
        },0 `8 O% _9 L0 A9 K: f# t
        {
5 g* e- q$ l" ~                .active_low = 0,
; q7 l( G7 a/ h9 @( ]- f; w' G                .gpio = DA850_USER_LED3,4 M- w) r! G, E, J% K4 U# Q
                .name = "user_led3",( b3 k( t4 {! x+ \2 }' `
                .default_trigger = "default-on",- o  S: S( t1 [( T
        },
- a( a! i9 w) ~1 M4 |% q};
" [) m" J( w$ R  A: u8 c/ x, s# K' T8 N$ ?! }6 n" y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, ^4 v' j% Q! y+ e6 P' l: a! e1 u: j
        .leds = da850_evm_tl_leds,! o$ j" ]: R$ G, w8 X+ R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. c# x# N6 ~* s( G, ^4 a
};
+ ^4 V/ Z3 V0 y; v4 k6 k: w% V! x6 \% _+ S& N
static void led_dev_release(struct device *dev)* X7 v* S4 }' n  e; c
{3 v3 G* X% \/ E) B8 V
};
/ U0 @0 u- I7 k4 }9 p$ K
& C" z6 s4 |0 p% P3 [static struct platform_device da850_evm_tl_leds_device = {
. o) y& t$ A' P; |+ a# J        .name                = "leds-gpio",
0 r' E" B. m" ~6 R% Y7 o  U& J$ _        .id                = 1,: W; G. x% `6 b
        .dev = {$ |. t- h7 b, L- I
                .platform_data = &da850_evm_tl_leds_pdata,9 k/ z' c2 J( ]3 h
                .release = led_dev_release,* u+ O+ e/ l* M. c
        }( B6 @2 p* {3 r3 z* S
};/ K3 z/ @* X- q. z
1 I" A/ _. t) m: X+ E
static int __init led_platform_init(void)$ V( J# h. }4 g! B- h7 P7 I
{8 V6 X6 V0 c: x8 U1 r! v8 T! g% @
        int ret;# Y# a2 t. F1 r* j
#if 0
0 ]( D" k! T* a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 B5 i4 T3 Y" S2 |; p
        if (ret)8 D/ W# B8 U) C( ^0 P7 g! o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 C+ m( m& N+ A9 B, t* c' X1 d4 o
                                "%d\n", ret);$ u7 w  }* q; d6 H6 x
#endif5 K, C1 V3 m. Q  u
        ret = platform_device_register(&da850_evm_tl_leds_device);& V% I, M% c/ T" U  \1 M6 p
        if (ret)& P/ ^) K3 G, Y% o8 H0 G
                pr_warning("Could not register som GPIO expander LEDS");
$ z: }& t  d$ h! C3 h+ T+ H        else; ^1 M5 b  N( a( B
                printk(KERN_INFO "LED register sucessful!\n");# j) `, o& {5 V! E: Z4 h
" y( [/ B+ t- m% h. [; t
        return ret;
) M+ v% x4 N. u3 h+ q% E7 X+ u2 c4 {}9 _% o  `/ ^( p( q; ], {7 N- ~

9 [% t/ b$ p) B  q9 ?, v3 Cstatic void __exit led_platform_exit(void)8 h. B0 S( \) l4 G9 D# U
{
5 x! h; Z8 h5 W" [0 w        platform_device_unregister(&da850_evm_tl_leds_device);
+ V# ^0 F! _6 h( b. {* s6 t* W' u* Q# |! h0 n6 p) b
        printk(KERN_INFO "LED unregister!\n");
1 J7 [; G  W+ l) y}& W0 }! n" e' T4 I) v% I9 a

: v) T' Y+ G8 Q+ H: ?% umodule_init(led_platform_init);. s7 v/ r& H( a0 g* S% s
module_exit(led_platform_exit);9 z5 }9 t4 t; j- _4 e* D
! O8 G9 E$ d3 G6 ^% l
MODULE_DESCRIPTION("Led platform driver");. X, X$ R4 _. E& R
MODULE_AUTHOR("Tronlong");: V+ O$ h5 G4 M7 I+ k, `
MODULE_LICENSE("GPL");
7 q7 m" U* c3 g8 E/ E, [$ t5 g+ q# z7 r, M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 00:40 , Processed in 0.039184 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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