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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 F9 u; d# S% }6 L( I1 H#include <linux/init.h>( Y6 M' O4 T, g2 f/ `* J
#include <linux/module.h>* i. F( M9 h7 ^+ m# G' C% r% r; n
#include <linux/kernel.h>7 b0 o$ i3 X) }8 |4 W" p
#include <linux/types.h>' A% I$ `' D5 ^: e' y- Q: k5 b( K9 N
#include <linux/gpio.h>; X7 `2 l* p+ A& p2 x3 J
#include <linux/leds.h>
5 c4 x: ~6 s" @2 [0 ]$ X#include <linux/platform_device.h>
" V0 P5 F, V2 `! N, v3 @9 ~3 M
0 P4 u. V! a# h0 G% V  J#include <asm/mach-types.h>
4 i* H9 r- b* e#include <asm/mach/arch.h>
# Z3 [8 @( ~. R' h( S* W1 e* H, J#include <mach/da8xx.h>
" z$ Z8 P0 |) o4 H, |/ }( b#include <mach/mux.h>5 l6 G4 _/ p! A/ E, j6 t

: U" k1 ^) L! C* z1 F1 R* n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 l6 w, w7 H* R( |! \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% S7 u& Q, F8 D. ?) R8 v0 {& x% p1 p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 v4 S0 P$ r8 ?6 U; q! l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): E: ~! f, L7 W8 r
5 E& s5 f# Y6 T6 E
/* assign the tl som board LED-GPIOs*/
+ D1 w% u: `' l( y, Astatic const short da850_evm_tl_user_led_pins[] = {6 N* `- I8 Q9 ~1 Z
        /* These pins are definition at <mach/mux.h> file */9 j) n8 i: }$ q% T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, Y' T9 c# h7 g, ^        -1: M7 k8 b+ l. }
};* X8 m7 V! [8 M8 `  q4 e0 f

8 O& r3 m' r7 y1 G' k( K% Estatic struct gpio_led da850_evm_tl_leds[] = {
5 D: M- {3 n+ Y        {. ~4 ^" ]2 [4 E) x- d
                .active_low = 0,
) @2 V: Q% C; {( Z4 e  s; X7 p                .gpio = DA850_USER_LED0,! {: k# c' _' h2 q% S6 L
                .name = "user_led0",1 g, y" U$ D  A/ \
                .default_trigger = "default-on",
: ~: U. D- i# S  Q5 ]        },% c2 Y4 Z. x/ P- |% L4 t
        {
% L' Z" X) I. Q8 ^, p! s                .active_low = 0,1 q' b% \6 _# E" [# U+ L6 A
                .gpio = DA850_USER_LED1,
. d% S7 ^! P$ f; E                .name = "user_led1",
, E; T( x9 Y7 S! W1 ^# d8 G# w                .default_trigger = "default-on",2 b8 J- s% H8 @  j0 ^
        },$ e1 h; I* j) M! \' H7 j9 g$ W6 J
        {# L& M) `8 a2 z9 |: _
                .active_low = 0,
- `7 A6 P6 p, \% k2 N4 w0 |4 R                .gpio = DA850_USER_LED2,4 w6 S+ B  C! S! {
                .name = "user_led2",: c: O4 v/ V: G
                .default_trigger = "default-on",
' n; O% k0 G. i- L        },/ ]. \2 w- i* X/ W) B' q
        {7 a9 ]% q3 i/ Y, R8 A# v# d% C
                .active_low = 0,6 Z3 w2 r! y; x+ _
                .gpio = DA850_USER_LED3,) Z) z4 p7 c: L5 B7 F6 `. u# B
                .name = "user_led3",
0 O; X4 z# V# }: u7 ~+ f" G) S1 R" ?                .default_trigger = "default-on"," F* B4 z% A8 }
        },9 j' u) Y+ n% C7 }
};; j1 H: S$ r* y5 N
( S0 u% \0 h& h% u5 o7 B# e* ?" p8 f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% F# K; r4 s" H9 q  p% s: G+ W$ k
        .leds = da850_evm_tl_leds,
# {; `- ]) j, ^! ^& O' o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! j9 E) M$ R) L  K};* C/ c' ^( G. r1 A- y+ E
- y; f- u! B- h/ [) U" O
static void led_dev_release(struct device *dev)( [5 i8 `8 W( D$ x
{' z( @8 g6 _2 L) [+ L3 {( V* h
};
: F- w# D6 ~7 s9 I% j. {
, ?) B, T( m" R$ Vstatic struct platform_device da850_evm_tl_leds_device = {. R6 S" H- P+ `: E8 r
        .name                = "leds-gpio",
2 H& J; p3 m- i1 ]; o/ k: l$ F8 _        .id                = 1,, J# Q3 q5 r! ^8 [( W
        .dev = {+ v2 d+ z: r  {+ H
                .platform_data = &da850_evm_tl_leds_pdata,! w8 b, o. C( ?" X0 I4 ]+ d( s
                .release = led_dev_release,
' t* c/ O5 M. `        }3 k0 h& Z4 E9 P1 A3 r& Q
};9 ?. X7 e: d& U& J9 G
" |  x, N5 N% p9 W5 u
static int __init led_platform_init(void)" P; j$ G6 O, T0 E% K+ }
{- z8 r8 _& A+ L8 C5 C; d
        int ret;
! R7 \. Z+ q9 ^( b; J; q#if 0
, C2 H6 h* n+ v5 p7 @8 e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' w/ N, s8 Y! Y" \( F
        if (ret)
' k( C% i3 i) r2 [. K2 C# ]& t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 }9 E) m$ p, J# {( X4 c
                                "%d\n", ret);- S! w8 t$ s, ^+ K
#endif3 U& D& X) U9 H* d  t
        ret = platform_device_register(&da850_evm_tl_leds_device);
# |# a4 E, T& s        if (ret)
8 ^% x& e/ T- D6 I$ G1 l3 @# ?! M                pr_warning("Could not register som GPIO expander LEDS");
$ u) y; V/ h4 v        else+ ?- [  X& z. C& r' X
                printk(KERN_INFO "LED register sucessful!\n");
; g1 r0 H' {4 }8 x$ Q, H2 O+ z2 @3 L- G7 S4 T2 `. w0 R3 [: N' h% U
        return ret;
8 H- y2 K$ ~* r! ]8 m6 [}
& N- u! Q0 u1 t+ o, w: y' b# D$ h' h& ~' h" C  x5 q; a0 {* U
static void __exit led_platform_exit(void)
, O4 M& J% ?" }$ N0 l9 p{& Z7 `6 D; N# Q: d, f) Z# I
        platform_device_unregister(&da850_evm_tl_leds_device);. m4 U, P2 P) A2 W
3 W  O& V7 f; O' R0 {
        printk(KERN_INFO "LED unregister!\n");' ^; w% A* a( k4 V
}
1 J3 D) L# P& F; u) e: d6 P" ?, ?2 M! d" j
module_init(led_platform_init);' \4 C- X$ x1 F) ^) q* B" `
module_exit(led_platform_exit);
8 W) i2 V: n' j$ u- t, p$ F+ L. R1 X, Q7 X8 M; v
MODULE_DESCRIPTION("Led platform driver");
# ]. W8 u$ t& QMODULE_AUTHOR("Tronlong");
1 _% ]4 V: r! oMODULE_LICENSE("GPL");
% j& P( _* s' c5 B4 i/ Q' ~! A4 X8 X9 [/ y, `3 K8 \# e* p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 22:22 , Processed in 0.041375 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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