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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ |& N- [. {" ]9 w# J( c' l#include <linux/init.h>  l1 {; U+ {4 W7 F7 s3 s& G
#include <linux/module.h>
2 p6 _8 |/ u% O5 m6 s#include <linux/kernel.h>/ ^. B" I! C' Z  m! Y* M) l
#include <linux/types.h>
* y$ Y2 e8 N( Z/ d/ {5 c#include <linux/gpio.h>
/ n4 J  [: y- S* x0 q; ]#include <linux/leds.h>
! @) B- i( j  J* ^. h+ v#include <linux/platform_device.h># J# _/ y. z7 z) r
% ?; C! Y2 Q+ S
#include <asm/mach-types.h>
( D0 k4 W+ o- m7 D0 R# T/ h% Q#include <asm/mach/arch.h>( B, z0 x. Q. T& s% i+ b. q4 w
#include <mach/da8xx.h>7 p8 l4 n0 ?8 G# H9 L
#include <mach/mux.h>. J! G# V% U6 ?9 q/ x1 T
/ M4 V, k) T3 ^0 V6 C6 _& H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 I2 H/ R. F5 m2 [/ N& v. N#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  T% p, n' m( Y$ e4 U4 v, Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) J! }# s( G/ V/ V1 p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' i+ i; r) D+ Y% j* h
' N* i% R1 _0 ~3 G! |. R1 W
/* assign the tl som board LED-GPIOs*/. W7 ^+ u7 K, A8 p
static const short da850_evm_tl_user_led_pins[] = {
5 P5 Z- E/ C4 A" Z7 q! z+ Z8 q0 D: f        /* These pins are definition at <mach/mux.h> file */
4 k, H; I6 \( ]) y, E' V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 A+ ]' [8 g( B9 e3 m! o3 w" v
        -1
( o# S" A1 O- @) e" S# H$ w% q. D};; O$ t, }) a8 Y( A7 q" ~" E
" y  o+ W8 D' L3 K* {6 R
static struct gpio_led da850_evm_tl_leds[] = {( _/ }, o" p2 ^  _) g+ |! o
        {) c- v9 G7 ^3 W( [- Q
                .active_low = 0,. Y. H) E( e- ~; {% v: R! Z
                .gpio = DA850_USER_LED0,
& Z8 S5 Y: B; o% ~" p. g                .name = "user_led0",3 y. `6 ?* [" G
                .default_trigger = "default-on",
3 U6 b- \% M0 G. d; Z4 G        },
( t" z: A% l- @6 T: @        {
! r: Z; d5 l, @* P                .active_low = 0,
4 V* f+ A4 t6 p* |  b- b  i                .gpio = DA850_USER_LED1,
/ @9 H- E' a* ?+ J& G" z                .name = "user_led1",5 h* x  [9 n# G2 D8 e* w7 i( f  B
                .default_trigger = "default-on",
; b: ~# ~' F! A' ~        },
  q2 v5 q& k1 j        {" p% |8 A& M$ ~( N4 x) x
                .active_low = 0,
- S' O/ k. g1 M! M4 {2 x! g  V                .gpio = DA850_USER_LED2,  [/ r9 h) V$ @4 `% U# l
                .name = "user_led2",
9 x- A0 j/ T# x' P; F                .default_trigger = "default-on",
! h/ q$ G: m* C& i        },. S" ^3 |+ i* v  p
        {
5 z/ y+ ]/ U3 d3 z: `' ?# z                .active_low = 0,
/ t1 T4 j7 Z- ]8 H, I* L# U. y                .gpio = DA850_USER_LED3," C3 p: j) U7 Z3 s! V7 h
                .name = "user_led3",6 m7 K% `8 [/ p- X5 @, K+ o
                .default_trigger = "default-on",6 Y9 v* x: ^3 O) P9 _/ }
        },7 k* k( B4 ^# M. N$ s$ L
};
& S1 v! s8 M5 o3 ], w' M
5 {1 E4 K2 T" {0 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ ^/ d4 S& u, ^2 ~5 ?2 F
        .leds = da850_evm_tl_leds,1 |4 v2 {$ |/ t2 [4 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 g$ ]$ |) q0 T};% C5 K. `* g1 m7 ?7 e, A/ A
' |8 S2 y7 K* p0 [+ s
static void led_dev_release(struct device *dev)! E7 k0 J! l$ d8 M; Q& P, Z+ ~* t
{2 R' D. L4 k2 G, j+ h) m: c# W
};
/ S( z- H9 p, m5 B7 H' h# _$ w" j! b0 k; I; }4 @
static struct platform_device da850_evm_tl_leds_device = {
* N7 W1 ^6 S! j) B        .name                = "leds-gpio",
0 ]- M: L6 X) g7 Y        .id                = 1,
1 J# Y! y3 w- I9 v        .dev = {
9 M7 m7 {% E' X, x/ p# Y                .platform_data = &da850_evm_tl_leds_pdata,
. N9 k, B7 i4 |$ ]5 U" m+ i                .release = led_dev_release,
3 O& E% ~, v' i1 F, a& r* J        }" U8 _) [' i- `. o- J) w! H
};; S' L/ g3 [7 T4 A+ m' s
0 w/ o3 y" r" `# H* x
static int __init led_platform_init(void)8 p* y0 j5 d0 D8 w* x8 i. m
{( E8 E( C1 l# e8 f7 U$ }
        int ret;
5 z. ~5 ~* K! e, _2 z* A#if 0
; A9 @6 s7 \1 ~6 J9 }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 T( a! s1 ]# x0 _& G- ~        if (ret)
- `' _) n2 n" k( r* Q9 ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 P+ T3 W, b! _- X. x+ {
                                "%d\n", ret);
, e$ z1 H% P5 V5 T1 d8 k#endif
4 i: d/ W/ }' J: g7 q        ret = platform_device_register(&da850_evm_tl_leds_device);7 ]+ O4 M) N( l( m* T( {+ q
        if (ret)  k- H6 F; Z0 P7 [& z
                pr_warning("Could not register som GPIO expander LEDS");
( T8 U3 u& ]2 r7 n: t2 o. N- h8 g        else5 ?- |+ K& G1 N! M, r0 A- l# u9 m
                printk(KERN_INFO "LED register sucessful!\n");$ J( \3 {6 [5 W, e

( D7 b# y% L. m# |% n+ }. Y        return ret;. [1 p! _# h* ^- v$ ]" S
}
- C( ~; T+ H, h2 z' H, @& s' g$ W& v7 `$ h
static void __exit led_platform_exit(void)8 O0 c5 q* p* y0 c6 \* u
{% ^0 I) f+ u, m1 Q3 j  t
        platform_device_unregister(&da850_evm_tl_leds_device);$ \6 k% K1 U, f/ [6 d8 v7 W6 O5 x

1 H6 a5 l& H; A# I$ f% L; H- T        printk(KERN_INFO "LED unregister!\n");
" S8 V4 b1 e  J! U+ i3 X}
7 I% y9 k& D! M/ z) K" F3 f' M5 `% Z1 E" P
module_init(led_platform_init);
) M; q0 m' n, ^! N7 wmodule_exit(led_platform_exit);
  h6 e/ J- ^8 H7 P6 x) F6 R" |3 [' I2 o
MODULE_DESCRIPTION("Led platform driver");% }. P2 c* I3 D$ z; e) [4 X
MODULE_AUTHOR("Tronlong");
$ l$ G7 K' f' {/ }+ ^7 L; tMODULE_LICENSE("GPL");3 I0 J$ L# \6 L/ B  k+ l- A- n: H' s$ I
8 D4 d/ b/ @+ ~- ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 06:32 , Processed in 0.039474 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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