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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& E0 F- B$ U- A$ g
#include <linux/init.h>
3 h$ ~! I4 {0 e, N7 S& d2 x+ s, y#include <linux/module.h>; h# {  @/ l8 O
#include <linux/kernel.h>& O8 q5 V) l" w
#include <linux/types.h>
( y& r& c5 E! i; `& \1 O- M6 v#include <linux/gpio.h>, Y4 V! `/ F1 [- }! V
#include <linux/leds.h>! G2 i. p2 x$ G0 Z7 A
#include <linux/platform_device.h>' L' T0 d  Y8 W
/ |1 ]% D. n) x
#include <asm/mach-types.h>
8 R, l  ?4 C3 _! L$ j#include <asm/mach/arch.h>& T4 L9 n+ R4 y# U% M: T" R5 f" S
#include <mach/da8xx.h>  j% Y" V8 T" u/ j
#include <mach/mux.h>1 W6 H2 F8 O; I# H5 {' ~# m
; P; h; X7 L5 L; ~6 i- f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 n- C" I' A- t, m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 L3 r6 A/ m9 ~' s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: f' X" c( E+ w) W2 Y- l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 q1 L' l+ s* V* R
& d: E" o# T- m* f1 C' I( m
/* assign the tl som board LED-GPIOs*/
* T' l1 A+ C( Qstatic const short da850_evm_tl_user_led_pins[] = {3 U9 H& N" r0 o4 C
        /* These pins are definition at <mach/mux.h> file */( o: a; P0 Q8 g2 `) W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% Q4 _- i  Q; D3 V" z' I
        -1
# k6 |  i  S7 F' X& l};
' \# x0 P6 X' Z. s' O$ D( W, |. c8 N
' ^% z9 u7 m% P8 V9 T8 f. d" Astatic struct gpio_led da850_evm_tl_leds[] = {
! l! W' k! `# z        {
* k0 B9 z' Y- H/ c5 h( c  l; K                .active_low = 0,8 t  |$ j$ ]& P7 L& k7 v& D+ D  R
                .gpio = DA850_USER_LED0,& Z% h0 ^& g6 M1 x8 v# ~! m
                .name = "user_led0",
2 a$ B3 t7 f" W& n4 y* T                .default_trigger = "default-on",. G. J, U* C! M9 u; T; G0 i& \
        },
- O/ d! i& U% [        {$ ~' h, x. h, l9 o  Z
                .active_low = 0,
6 ?' J& n- d6 A# r5 j                .gpio = DA850_USER_LED1,6 J0 \+ x, W  B! X0 F" z# v
                .name = "user_led1",' O* G( O7 Y! k1 m( e
                .default_trigger = "default-on",! i) l* i; U. ~* l3 r
        },
0 Z- v' \! P) s- P6 b' J6 V        {1 R5 ?9 V! N- ?. S
                .active_low = 0,) V7 M2 l0 N) G" r
                .gpio = DA850_USER_LED2,
/ Q5 b4 u4 x8 E6 E3 Q                .name = "user_led2",7 W5 _& b# h9 o9 s& V
                .default_trigger = "default-on",8 l  m# K2 C7 F% ^6 b# n; c) d
        },
9 i4 h, D/ p, g6 i" i" b2 ?& t        {( o( K6 s; F- r8 O# F; G
                .active_low = 0,
2 x1 O9 b3 k4 E% e9 v' B# y                .gpio = DA850_USER_LED3,
. B$ \0 ~5 F& y' U$ t# r' g& ]                .name = "user_led3",
$ i& P/ \! @" q; q                .default_trigger = "default-on",
! _, h; _5 Y9 ?& n9 y$ p3 g        },( \$ {( P; v- p& y8 w
};
$ ~# j# \! V  H9 R2 x8 d) a
$ B. B/ h1 ~% I) T- u6 V- m, g7 Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" F8 L1 h$ h$ W1 n9 Z
        .leds = da850_evm_tl_leds,
' Q* o( i: R- m8 ^* n+ W        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, N# r% p; w6 a8 i& ~% }& T};3 a& T' a0 l0 Q& n$ Y

1 Y) X3 L+ T' }static void led_dev_release(struct device *dev)1 _! h: O* F' G+ y: K9 p
{
- O5 A4 I9 U& U5 A. @4 b};
% m$ S, P8 c, d* ?
, [. ~$ E: o) G9 bstatic struct platform_device da850_evm_tl_leds_device = {
# p& Z9 T' C0 x1 n% P+ q8 `        .name                = "leds-gpio",
7 b! w; A* H7 G8 R" f        .id                = 1,! Z5 E' X$ F: q
        .dev = {4 L0 y4 M( x1 L! i+ p  b
                .platform_data = &da850_evm_tl_leds_pdata,
! R5 V( b: n. v8 I; M9 L                .release = led_dev_release,2 B* l8 I  p+ |- N$ ^/ A; x
        }
, O) E* `! s( T- d9 c, ]};- C# P/ g6 Q. h  r, j2 R

2 b  j- W$ I9 p2 |static int __init led_platform_init(void)
, R% ^7 P) p4 Q/ h{
" o5 |9 S6 ~! {& l% r$ x        int ret;( B3 X7 t* q; _0 p
#if 0
- z. P4 J) _( `; ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 L2 J2 L# S& g0 `% k7 L
        if (ret)- `& I; k& t+ a- i( C4 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, X# M, K" j7 {% Y" s7 g                                "%d\n", ret);0 E9 q3 C: a/ u/ g
#endif# i5 A: _9 e6 t0 S9 g7 s
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ z+ ?* C* f! v8 i. L7 O* C# u* J9 y        if (ret)
) I. @4 I! I2 ^, O% v, t                pr_warning("Could not register som GPIO expander LEDS");; E0 L1 v: _4 g: u
        else
2 ?$ I; A) x% V                printk(KERN_INFO "LED register sucessful!\n");
' q/ `2 Y' i/ c  u, ?: D5 B: n4 _5 d5 [9 w( @" w6 q
        return ret;
1 q  k- U( O( X" O( I# y}  c$ Q# I1 s8 K8 P

& u/ R) f3 u# `( u; f) @static void __exit led_platform_exit(void)
$ b9 M0 u; _8 A{/ s  i* M1 C8 x6 K
        platform_device_unregister(&da850_evm_tl_leds_device);: t/ t, b. \& x; }5 X% T

9 {7 T' ]2 H  @3 _- r  x8 n        printk(KERN_INFO "LED unregister!\n");
1 E$ u& w+ V0 \2 N: _}6 |  T. m6 N' c8 l5 D$ q
" X7 X: k- \0 k
module_init(led_platform_init);* b. N- y) x. B: h) u( q9 H# b& }7 Q
module_exit(led_platform_exit);0 W( ]( I2 C$ k+ B# `

) C! P( I9 j) r* }( d, wMODULE_DESCRIPTION("Led platform driver");8 B0 F& M; S) q4 ^& u% J7 [0 P1 b
MODULE_AUTHOR("Tronlong");
. ?2 D6 w( c4 c" ^MODULE_LICENSE("GPL");3 u9 j  V' f1 A% I( l9 u7 a. m
$ ]% t% E* `: L" I! a- j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 00:25 , Processed in 0.040129 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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