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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 [' R7 x2 E& e1 }9 v; Q1 {: Q
#include <linux/init.h>
7 J1 N- q) x* {$ f; {#include <linux/module.h>( B; ?2 q; ^" ]/ y) I* T, I
#include <linux/kernel.h>* j/ O: B' t% B! H3 a
#include <linux/types.h>. d2 F) j# ^) \; D  |: q" B* z
#include <linux/gpio.h>
% i8 M. E% A& ^+ j#include <linux/leds.h>
4 L. y& \  T) D! g! @. H6 L#include <linux/platform_device.h>! Y* S) M' [  Y" g7 R  s- f

3 N) n6 r5 R  A+ N, _4 ^  [+ }#include <asm/mach-types.h>
7 C% D" }3 n: O#include <asm/mach/arch.h>$ M3 b% V# ?8 Z+ _  y
#include <mach/da8xx.h>. F) [4 z/ i  y) e
#include <mach/mux.h>$ a% I" s+ g- Z. {6 [& S+ `

) _- \7 A9 f! A" V/ Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): y# J: i/ l" u4 b( g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 Y( l2 B$ k7 B1 x, S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& U  `- r1 f- V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 s, F! R1 R2 ]2 R9 C/ u

- S2 u$ a) Y4 D/* assign the tl som board LED-GPIOs*/6 a+ b3 j0 h  R, g; u9 J
static const short da850_evm_tl_user_led_pins[] = {  d7 u% N; Z' \. l- s: o! e3 i
        /* These pins are definition at <mach/mux.h> file */0 k( D$ K' {% Y, O$ X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. J* e3 _! x" u! x9 X& e& w# D2 R5 e        -1
7 E" L9 Q; q* |/ n3 Z% \};
. D8 A  a' ^" s. G2 M- j; |- r' T, N# S) I+ W' m8 O6 r, T* w
static struct gpio_led da850_evm_tl_leds[] = {
  _+ t6 J' B4 j* [; R- i        {
8 T5 Z6 x% l9 W& q5 m                .active_low = 0,
) |1 F* v7 @( o5 F+ I5 ^                .gpio = DA850_USER_LED0,
: ?; t5 @& W0 V6 e: j4 z2 Y* H                .name = "user_led0",
# B$ G& ^/ p5 k. N                .default_trigger = "default-on",. e1 G( A$ k2 Y/ c2 g- }
        },
* G  T! n) K- E* m& m1 w        {
, c; G3 m1 }2 G$ D                .active_low = 0,
" P) ]# U1 z4 }/ x% l                .gpio = DA850_USER_LED1,
+ L  F$ q2 O  n4 O8 Y7 R                .name = "user_led1",9 `4 _6 m6 m6 y
                .default_trigger = "default-on",3 `; m  l8 {8 s" r/ @/ i
        },
0 D( o0 P# ]; v; S2 v1 j8 Z' b8 `        {. D5 [( \7 `( k! M
                .active_low = 0,
& N* R  H2 c' N; {1 }/ {4 u                .gpio = DA850_USER_LED2,& o7 M6 |/ ~* t5 G1 K& f  \
                .name = "user_led2",6 D0 ?7 \# L  z- n
                .default_trigger = "default-on",( t5 a9 r% J0 P5 z; x# r
        },
. i3 e" k" q* {& J; I/ }6 x        {
8 r( y3 \" A# T* a8 }& h                .active_low = 0,
- I" J% |9 `2 c+ c- Z' [                .gpio = DA850_USER_LED3,
: H/ s3 u8 Q2 `3 Y2 Y/ h                .name = "user_led3",
  Q) a6 D9 x) f# Z7 t9 B$ d9 b+ Q( D                .default_trigger = "default-on",0 J0 W/ D1 ]; P% K& T
        },% ]7 b  _, h. s4 j2 V+ g2 X
};
2 N1 q3 b, ^5 G( v) r5 Q- s  y
  Y- j. f3 p% }4 D9 f! o, b, }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 B3 E/ Y# t. V) q% N* ?        .leds = da850_evm_tl_leds,7 r1 k$ J4 U. d2 S1 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 Y0 h- I! Q/ d& T+ ]
};
  ^7 ^: ^7 Y2 U/ b; |  P5 r' n( \5 b+ Y5 p& T+ y  d; a
static void led_dev_release(struct device *dev)
* e9 Y! _% W. ^, H1 ]! P{6 N; S4 D3 e/ _: z3 N( e6 X9 ^/ L  a4 A
};. L" S0 G6 S& X7 i9 W: P

1 ?: n, f) S' Y: y2 _static struct platform_device da850_evm_tl_leds_device = {! d7 @  w. T5 e+ k+ f, B' M$ Q6 V
        .name                = "leds-gpio",
% J. h, Y) _8 V# h9 M        .id                = 1,
" H# k# b1 y: l3 e, |        .dev = {
' i* F, S, [: g; n3 l' \                .platform_data = &da850_evm_tl_leds_pdata,( \; Z0 ^6 r0 [! P+ ?
                .release = led_dev_release,
: \5 d, S  U# N4 x/ t7 X        }
& b( ?. n3 L7 _; I: }};& |& f4 A) e; X; Y6 L

( s2 Z& g* Y3 e; g, O& t. `6 kstatic int __init led_platform_init(void)7 y' w0 x0 X  T9 Z6 V6 O: ]+ Q
{
, Q: B# e# Q: ~2 i1 R# X        int ret;
0 g- r! R$ A9 N8 e& D#if 0
$ U9 W. K3 n& w( R9 [4 A$ w" }% S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% K5 p' c9 O8 B
        if (ret)
) W, ~5 z+ l% Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 [% ~. W) b; i6 g  J6 z- d# p                                "%d\n", ret);
+ ]$ I2 q* J  C" t- _/ K* m#endif
' S/ l* R5 O. X' S2 z' I        ret = platform_device_register(&da850_evm_tl_leds_device);+ M. z* Y( A: I. E' b
        if (ret)
% e1 w5 F( p) q9 w9 |                pr_warning("Could not register som GPIO expander LEDS");
7 }, R. s+ M* G5 _        else  T0 S; ]+ E# ^6 m4 w  ]! G
                printk(KERN_INFO "LED register sucessful!\n");2 r* E0 l* D$ g8 i
* E* i! l' F; w
        return ret;' ^4 C4 p1 L) C; A! l4 D" X9 u7 e
}
- J  `# _" B6 A* p. g& ~( r7 \- k* L
static void __exit led_platform_exit(void)
; _5 {; b) b* Z6 m/ O0 t! N{
' n& `* y9 ]$ w/ U        platform_device_unregister(&da850_evm_tl_leds_device);
% Z1 W7 e- V% `3 w8 _- i( m6 j
0 {; U# ^' G; x& B% P" K/ H        printk(KERN_INFO "LED unregister!\n");
; s! t& r% e) f5 O7 X# o}$ y% u2 |) a- j7 O$ Z; B
$ Y2 U) W/ M9 f. o1 e- o. Y3 S1 Q6 \* f
module_init(led_platform_init);* P  `% M2 i+ U
module_exit(led_platform_exit);4 v8 S+ F" f6 i! k, K2 u; b
- B! j8 m2 s9 p
MODULE_DESCRIPTION("Led platform driver");( f' [/ `* a& A) @( n6 f" |
MODULE_AUTHOR("Tronlong");
+ k( Q: P3 R- E! D: @( ]+ ~- ZMODULE_LICENSE("GPL");
) Z. w. K  P+ E  N& n1 {; [% l* K8 O8 j$ S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-24 19:55 , Processed in 0.045379 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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