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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- G( l) v3 h- t2 S* ~#include <linux/init.h>
6 y& g8 ~0 Q3 D2 y" z# J2 I6 z#include <linux/module.h>
0 U% _) m+ d2 R& f#include <linux/kernel.h>
/ y5 [2 d) F: d& |/ Y5 C#include <linux/types.h>- t8 i1 d; ^8 Y' D
#include <linux/gpio.h>0 @+ r2 s! r! m0 n
#include <linux/leds.h>8 N! Q" I9 x- L' n2 @8 _+ m9 n
#include <linux/platform_device.h>* `2 ?7 {) @& O5 f7 J

2 `! S: [8 D: Z7 _#include <asm/mach-types.h>
5 X3 Y( n  b( Y1 L% b' x$ d#include <asm/mach/arch.h>
; F4 k. k9 [( l0 z9 |1 N8 }  i1 t3 R#include <mach/da8xx.h># I' E$ y. M4 S/ v
#include <mach/mux.h>5 ?5 y' ~. z$ ]9 m4 M: ~
. g. T0 _( w/ G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) Z' P: A% C% S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! G4 e. O( K# U: ]3 `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& K" B5 ~% x0 v2 r4 q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 h# Z" x6 K. b% |+ d) _. y6 l

: [0 _* e& e: `8 S8 Y6 J/* assign the tl som board LED-GPIOs*/
5 [: z( L1 S; z" u, ^1 Fstatic const short da850_evm_tl_user_led_pins[] = {. b+ j& r- q1 E! B- [6 x
        /* These pins are definition at <mach/mux.h> file */
6 e  t+ F( y0 U, F- W  |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 Q" ?( m' o- }; m        -1
) D( y5 K; _( w1 R$ h8 j};6 l/ \/ K# d9 |/ k9 ?
6 u  y* q4 E3 x
static struct gpio_led da850_evm_tl_leds[] = {
) g8 Z, B; |& y0 R; j8 \        {
$ L7 I& ~7 m3 {6 ~; E; V                .active_low = 0,
! c% m4 |8 r! B7 v" k0 F                .gpio = DA850_USER_LED0,5 a/ t$ l6 |, P3 O
                .name = "user_led0",
' L4 ]1 _  k1 W7 Z, K/ i                .default_trigger = "default-on",
7 j( X( @6 M4 }3 i" ?- I0 e) {        },
6 ?& p+ t9 D7 I. a- d& v        {, u/ p9 `8 [! `( }( B
                .active_low = 0,* O! g: E% Y2 P/ v( S
                .gpio = DA850_USER_LED1,# c1 J3 }! _, J3 O
                .name = "user_led1",
+ q2 [. @. W! n$ I7 @7 A                .default_trigger = "default-on",3 M- g  h3 ?* k8 ~" Z7 a; b
        },) L+ G9 @  m2 Q  t6 u
        {0 z4 t( {, S4 i" |& r7 F8 t+ x" {
                .active_low = 0,
5 E6 `- O% ]1 L, }                .gpio = DA850_USER_LED2,
( d! C/ @' v' m0 D                .name = "user_led2",) F$ [7 B4 l8 ~# E" l$ E% m# t
                .default_trigger = "default-on",
4 H* J$ w( c$ p        },9 }5 Q) x% q& \) q6 c( h
        {
+ v  T$ i! j) v6 U' X                .active_low = 0,
* M3 Y# m. W/ Y6 f                .gpio = DA850_USER_LED3,
8 n3 k/ b+ T9 p5 o* F& Y& ^                .name = "user_led3",# L) \8 H0 Z) ?) f6 ^
                .default_trigger = "default-on",
4 l% B& G2 F- U; v- }6 O7 ?& g        },
/ N& q; F: m" \9 o& Q# {* G};9 z8 p& H% B  A3 c! s1 ^( B! s

9 e: |( l6 z4 |) ~$ f4 s) wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ [3 }/ h) v) O9 ~: o1 _0 ?        .leds = da850_evm_tl_leds,
, G3 F4 m+ b7 Y$ \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- [" S9 o% A9 O+ h1 `};$ h( F, Q' u# F0 W+ i

, N  E' I# I% T5 Y# _  ~, Ystatic void led_dev_release(struct device *dev): {- {" H6 H2 ~' Q
{
! C/ H8 _& t4 U7 Z};
3 T# R) B+ d5 I" O# L5 w" N' n, w2 t
static struct platform_device da850_evm_tl_leds_device = {# A; n3 W" n) O5 t  v$ N4 I7 O
        .name                = "leds-gpio",# S+ M% t( q& t7 M  p4 N
        .id                = 1,+ R+ A/ K# _; T" f9 A0 ~  E
        .dev = {6 {' i. K$ G. N% s: s" d9 A# ?
                .platform_data = &da850_evm_tl_leds_pdata,  ?* d! X  ?0 m" @+ K
                .release = led_dev_release,3 G' ~$ N: y( S/ f, M
        }8 q7 Q. V- R/ z$ W
};
; k  P  i6 `. j6 [" S* p! `( y* H# L7 s$ A+ V5 o. x
static int __init led_platform_init(void)7 U5 G" Q% z! Z) w
{' g8 u" p5 ~2 R) k1 n2 t: E0 v
        int ret;
9 E9 @4 Z3 G' K4 Q#if 07 T+ c) N" z9 b  u2 u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; B" ^7 {4 A4 o& p. B        if (ret)7 X4 L$ X# M/ B8 g% ?; t. F$ U$ v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 i) Q7 N- p' d
                                "%d\n", ret);
( p2 ]$ f2 _, h0 |/ T3 w0 l#endif# n9 I$ n6 L4 |6 l7 [1 D' Y
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ _' [1 B2 M- S3 a* m( @        if (ret)
" \% e, Z* B' d) h6 R                pr_warning("Could not register som GPIO expander LEDS");: I- F5 W- O9 M1 f( I9 K' r; N
        else5 X9 S$ r' X9 [5 g3 s
                printk(KERN_INFO "LED register sucessful!\n");
) N8 q+ N( P% p! }8 ?$ v/ R: ^6 u, b+ s
        return ret;- Z. y- R& y9 d, o' i1 ?
}
9 N+ e% u: g8 o5 e  ^, H( H$ u2 B9 ?/ O% K" b* v& P# X# ~
static void __exit led_platform_exit(void)* C+ U2 q# r3 v- C
{
) c  n( A9 n" V1 B3 m- a        platform_device_unregister(&da850_evm_tl_leds_device);" ]9 s# [% W0 H9 K; p' X7 Q8 @

. d% r8 o/ z* s) d) y# n        printk(KERN_INFO "LED unregister!\n");
, q5 L6 c+ N, e2 Q+ C7 p; k}, @" L( K/ }/ i6 C4 Q! y" L9 X- k
, F" d& K+ Q# f9 V. X( N- Z
module_init(led_platform_init);- s1 D- v7 j. s% X% {4 s* i
module_exit(led_platform_exit);
+ i3 j. T7 s; I$ X9 N1 i) P# e
/ n5 o1 p8 D8 EMODULE_DESCRIPTION("Led platform driver");
1 [1 j. K# k' OMODULE_AUTHOR("Tronlong");9 h6 m$ \: g  p1 }$ G. \6 S
MODULE_LICENSE("GPL");+ `2 B6 {' Q) Z: l6 M' t2 b6 R

& [% a. L% w* z6 s) ~( i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 21:00 , Processed in 0.040030 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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