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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ v9 m. r6 z0 J0 Z#include <linux/init.h>" u9 E! }( V7 Q* k# r, Y4 r# U8 v
#include <linux/module.h>- y1 E3 {$ W4 x. c3 D7 r
#include <linux/kernel.h>
/ h! I9 L, Z4 }5 S, x#include <linux/types.h>
! U8 i" v, V- c: F#include <linux/gpio.h>1 p9 r7 }# o8 K
#include <linux/leds.h>. q7 K; S' b' @5 ^3 S- i, h, Q
#include <linux/platform_device.h>
( ]! e* b( M$ `% E* v* i# j! o% y$ d9 @& O0 a
& o8 C7 {" f+ q; Z0 J9 ?#include <asm/mach-types.h>/ D( F0 P2 V# V& I* [* b4 U
#include <asm/mach/arch.h>0 |; v$ S  k  ^- k+ S8 `; Z
#include <mach/da8xx.h>
- t$ m% ~1 z5 L6 l- i: U7 H6 H$ V#include <mach/mux.h>% N$ g! V+ l& r
( O( x8 A( P: l/ H  t1 C; J- Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 D8 j- M" }1 _4 g3 O8 Z3 }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ W$ t0 j; E8 U9 p) [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). H% I( Z2 z/ e4 ]/ M! H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. }6 C+ E( ~# B# d
$ [+ S+ x+ J  }2 c5 @/* assign the tl som board LED-GPIOs*/1 \, C+ G6 V* {0 T- e
static const short da850_evm_tl_user_led_pins[] = {
; }0 y! v& h$ q! y' K# O! i5 p. y        /* These pins are definition at <mach/mux.h> file */
, v9 Q- Q0 T* S0 q: S0 t5 b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" w! F1 d# D, J- \  q8 y. R        -1
; W) k" v) P8 A8 D# B3 X$ w- o$ K};
" C* I( ]( g0 R" t7 @5 A. R# ?  C: B( V$ ]
static struct gpio_led da850_evm_tl_leds[] = {  X3 m2 @' m4 S/ Q  [; n. c2 X2 e
        {. z/ [  n! |/ S% |9 W8 a& ?+ Y
                .active_low = 0,
1 e8 }' v' q; V7 y" r  g# E' L& G                .gpio = DA850_USER_LED0,4 [. u' U% U  ?
                .name = "user_led0",
& H1 j, G: @2 l9 G; ]! F2 h                .default_trigger = "default-on"," U% L7 q1 x  X9 f/ K6 W# o
        },
# Y$ O/ g) N0 z5 w5 I- n3 @        {) S5 B! p3 F* I6 c
                .active_low = 0,  U2 v  w9 r% C( a4 v1 C! j* v
                .gpio = DA850_USER_LED1,
3 W" _, }  S% N. A7 M  |8 l6 X+ Q% x                .name = "user_led1",- A0 P# W+ X$ y
                .default_trigger = "default-on",
! d6 }& ^' d% C7 `/ S$ @  ^        },
8 b7 V9 e* X+ k: _6 a        {
; u* Z* ]; H; m8 q- r. B- {3 k                .active_low = 0,
  z3 H$ }: i6 ]% y" K- x6 x                .gpio = DA850_USER_LED2,$ b& m% G  Y+ H! d9 ]* s0 v
                .name = "user_led2",9 O- a- G2 `% d! j# H1 B" N
                .default_trigger = "default-on",
: h9 g9 w$ G) D- h. z  b        },
* A; s- a- v" C" x/ M9 X& i6 D6 X; n        {, I' X. E: t/ N7 J1 S+ s
                .active_low = 0,6 V' ?$ N/ p2 d5 y
                .gpio = DA850_USER_LED3,
7 k. e0 D* p0 q2 u  v4 [! _                .name = "user_led3",
9 r" h9 h( S8 d: ]( a  c                .default_trigger = "default-on",
3 x- L. j+ i/ J        },
* D, _/ D# h# F) E: R};
8 V6 m( F& H, F; }% @3 u/ i
7 n) m) q4 C! z& k2 l$ f6 h; f4 Sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ N- m2 s' Q+ [9 @* Y+ J2 c
        .leds = da850_evm_tl_leds,
- b) Q: P; |. g) d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# d8 f. H% V( c  r; M
};
" y6 ~  K1 e3 U) ?# `
! R/ H8 n% g* ^# wstatic void led_dev_release(struct device *dev)
" O+ l6 a* G6 n1 ^9 P% e{
& d8 X& d- J3 g$ R};1 p/ W' r3 R3 Y

3 g& i5 n/ }: E6 xstatic struct platform_device da850_evm_tl_leds_device = {% |, I- x& c$ C9 ]
        .name                = "leds-gpio",1 r0 S& H+ U, x0 c2 w2 q3 y- g
        .id                = 1,
8 C' u+ ?" i1 L1 a$ n* v        .dev = {. K  ?0 {& F/ B
                .platform_data = &da850_evm_tl_leds_pdata,
" V0 G6 S8 N9 h& j  \* o5 I& A                .release = led_dev_release,; M* j# i& p2 p8 G9 T* A
        }
  j- {* v0 s) m};
$ C6 }+ J7 O8 t, P1 P- i! `' @9 o' M
static int __init led_platform_init(void)5 {) D% s2 L! R; [; ^; A6 K9 C
{0 q* g4 w- K  W  X6 j7 m/ l
        int ret;
9 N; ~" n+ X1 T2 U1 \$ X2 b#if 0
' H# l# n) b* e" k: L) m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. Y( {9 g; L7 m# }! l
        if (ret)
6 U* M0 N. Q8 r5 Q: e% q* R9 i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ J6 J$ X2 U& V0 u                                "%d\n", ret);
6 j4 U! n" ^, h9 [#endif; [' B* f$ G1 B1 M) p1 T
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ @& s5 I( R# n" ~        if (ret)+ o! Q0 V" b* b
                pr_warning("Could not register som GPIO expander LEDS");5 y5 S+ U- b) Z' B, `; G
        else! ~8 _9 H4 E3 Z& d) l( }6 l, |
                printk(KERN_INFO "LED register sucessful!\n");: a! E0 e. p) j' P4 D  B! n

& L/ o# T8 @+ g5 r% X, u        return ret;' y( N% d5 ]/ {! ]
}: v8 ]  Y7 b$ U8 H/ w

- U! j9 e3 |/ a5 q9 V' v9 {static void __exit led_platform_exit(void)
0 Z/ v2 l/ O/ D{
+ W% F7 f- z5 V9 a/ b/ \        platform_device_unregister(&da850_evm_tl_leds_device);
# y6 F* ]' a; w( @( V+ {9 |% F8 Z
3 |. ?9 W6 f3 `# c9 N# V* D5 |& ~        printk(KERN_INFO "LED unregister!\n");* ?" }) I0 j; M4 o0 ~7 w
}0 \1 O6 \" }4 p2 i. \% Q0 |
7 a% O, F/ v( g) n1 B' K7 e9 r
module_init(led_platform_init);
- k& G, B6 K9 n8 J! s. A' ?  smodule_exit(led_platform_exit);6 y! v7 T. V8 a, x( a  _$ p: k3 E: s

3 Y9 j# r; F; A* d9 d4 sMODULE_DESCRIPTION("Led platform driver");
4 Q" e) D$ |' |- n- E' lMODULE_AUTHOR("Tronlong");
- T/ L# v8 P- d  xMODULE_LICENSE("GPL");
. w* w2 @2 Y- G: |4 J# N9 q4 c; J- y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 22:08 , Processed in 0.054506 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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