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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- g! z  n, m+ O' [#include <linux/init.h>
* f  d& T) e- [- S; C) |8 u#include <linux/module.h>
3 w) g2 d$ C* A( z4 V, e#include <linux/kernel.h>
, ^6 {& ^* p2 f0 V3 J# N- _3 F$ k#include <linux/types.h>
- E& @' o8 b0 c5 h/ @#include <linux/gpio.h>- D  u8 t, H* z0 N4 D" V3 K) u
#include <linux/leds.h>
3 P6 V! O  J" \1 K#include <linux/platform_device.h>7 E  W* I% d0 ?
; j% a" j' z4 F$ k& ]4 \+ M
#include <asm/mach-types.h>$ l5 Q- L& ?( c; y7 h( o+ l) D
#include <asm/mach/arch.h>
/ O- u, c. Q9 w3 `& E#include <mach/da8xx.h>) r6 r7 o- Q! |( m; j& p6 d
#include <mach/mux.h>
  `+ y5 W( z* i7 r# b
# x+ ~" m" u' K% F2 d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ U: ?% w5 L7 x+ L! S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  m7 C' Z1 |) b) f' Y1 @+ P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& j* G# ~8 h9 o1 e  ?% R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ }  b& M7 l" b2 n1 s: k2 E

: A9 ]0 \; I4 h( \- \: H/* assign the tl som board LED-GPIOs*/) V! M0 F6 Y- u7 i
static const short da850_evm_tl_user_led_pins[] = {
/ z, `0 t& o, D5 L, i        /* These pins are definition at <mach/mux.h> file */
  x! t  k5 v/ u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; ?' }2 p( ^! m6 ~" {        -1
7 N$ _! B) u$ Y( \2 _/ B; k3 `};
6 e' {& `5 K" ?- q/ J. {
6 p7 @0 J0 Y' t: Estatic struct gpio_led da850_evm_tl_leds[] = {4 h* ]# B7 D/ d
        {: e+ E- b4 L: m5 Q7 P2 ^6 z
                .active_low = 0,
7 E% ?4 g& w" N& z3 [                .gpio = DA850_USER_LED0,
! r8 n# L  [3 }* Q0 R" T: F                .name = "user_led0",+ J2 N$ K+ L  h2 z/ {0 F( {3 u
                .default_trigger = "default-on",
1 d8 `. I3 Y4 Y- o! h        },
( M6 U. G* H8 H        {
) z* L; C, w; Y. f5 a, w6 L; L                .active_low = 0,
- T8 }$ I. |& m                .gpio = DA850_USER_LED1,
* t' v6 A" @4 E: Y# t                .name = "user_led1",
6 E: }0 n  ?$ I+ M4 D                .default_trigger = "default-on",; r& r; ]6 A+ J& p9 M
        },7 i3 l8 F: {- J0 F/ U0 G
        {( l# D% O9 H, P" _, `' M
                .active_low = 0,  ^7 W, T- G$ N+ Q; v& T
                .gpio = DA850_USER_LED2,
4 B5 z# m! |5 u$ b- P+ K+ L                .name = "user_led2",& T8 k3 s) q$ j# M/ a/ f
                .default_trigger = "default-on",
5 w; _. n. n9 `, U# R0 l  {/ W2 p        },5 P- \: A# e/ ~  \1 U. m
        {
, U$ [& u- G8 F  O; q$ S                .active_low = 0,: j1 ?, M# p) D$ }8 e0 E
                .gpio = DA850_USER_LED3,$ ^- v$ W$ i( }: k$ C
                .name = "user_led3",  r2 c' ^* D& w, L  e# g( B
                .default_trigger = "default-on",- Y; `+ Z8 F& e) W0 E; _# v/ `
        },- z) s5 d$ N' r8 |( c* c" b
};$ V+ t& \5 [% Q- Z  W! i
% R" W! n- ]: c# ~, J6 O! R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 G; g! _6 z. E' }1 w        .leds = da850_evm_tl_leds,
$ T, ^5 a* H. d: g- C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; ^" h  m4 H+ Y6 n};
  B' M' @- b- c. D7 k- y! {' r
5 X0 i7 A- X" j3 A. J/ w7 @% ]( g3 Rstatic void led_dev_release(struct device *dev)
. y+ r  Z: @; D9 }% ^& D" v6 |6 z{
0 V7 T  y% H! a) q2 }( k};
, {* B3 {; W( p3 s5 g1 o$ [! h$ x9 Z$ I7 m$ j- M3 o- c* k2 U1 l' k" z
static struct platform_device da850_evm_tl_leds_device = {. S2 N, j2 D# K+ I0 J) ]) J3 T) |
        .name                = "leds-gpio",2 `$ G' k9 K1 \
        .id                = 1,
. q7 `- K2 A/ Q        .dev = {! L& F: X5 T1 ?! x' j3 [5 v8 a$ m
                .platform_data = &da850_evm_tl_leds_pdata,
( b. a9 T$ b; ~' E! O+ v                .release = led_dev_release,- e; y! t0 ]) n: y7 `
        }+ ~& V5 ]' ?: M
};
# y9 _) U, d7 B& q" H9 X( z/ i& E' _2 w2 Z! S$ B/ F" X
static int __init led_platform_init(void)
& ^" z1 J) ?- Y1 c" l# k& X0 ^{5 F3 v+ a% a; [& M6 |- V# B
        int ret;0 u  F. i* u! z7 Z( L" |
#if 0: d5 f7 u) A4 ]8 C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 B6 S9 J& b- ~; C( t; C; J8 J
        if (ret)$ f  v: _) l7 o: [! w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ B2 S: c  M$ M6 S6 ]                                "%d\n", ret);: f; a; o) J7 R- ^- e; T" s: O2 v
#endif  q0 k( w* H1 l' O; G
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 g# S" B' A5 A; `( j        if (ret)
& o: a: z$ R2 J/ }                pr_warning("Could not register som GPIO expander LEDS");
3 C" E0 @8 k+ }: o* T4 m        else. N1 D& Q, y$ S
                printk(KERN_INFO "LED register sucessful!\n");) y) X) T. O* A9 _* C6 |  i
* M/ q2 z2 r* {0 E1 I
        return ret;
; W# L, A9 f2 M; ^9 d}3 y5 x3 Q  J* S( T" u. I, S
6 h! @- g' `6 l+ n
static void __exit led_platform_exit(void)3 o$ K6 [2 |4 ]
{+ [1 m$ A. N( G1 K. Y- o' V
        platform_device_unregister(&da850_evm_tl_leds_device);6 q* a) F2 a7 ~- x0 e
2 j  U$ T9 c4 J) J
        printk(KERN_INFO "LED unregister!\n");4 |8 B8 O4 N* k$ [2 s6 F! ?  r
}- U- Z( v7 s3 K  x4 p) g4 K

$ R) V5 m( Y% z! w7 fmodule_init(led_platform_init);
5 x( h' G0 c+ i! z) W8 fmodule_exit(led_platform_exit);
+ w0 w. ?, C! M/ |8 Z' G
9 u' k( T7 D+ T: S+ ~2 |% c0 MMODULE_DESCRIPTION("Led platform driver");
$ R5 @- L1 T3 B; VMODULE_AUTHOR("Tronlong");( x5 f" X& ?. d. j- C4 G: m
MODULE_LICENSE("GPL");
- {+ L: e  D0 l( A/ H1 B$ g3 z2 a) ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 14:54 , Processed in 0.042308 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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