程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 Z: l% |4 n; X: S1 l2 ?#include <linux/init.h>! s. P! H! Q% s* R+ i+ X
#include <linux/module.h>
& L4 g1 A( N) e' a#include <linux/kernel.h>
- `) q( J, A) `5 w. E2 ~#include <linux/types.h>+ X. q  y( p8 i: L
#include <linux/gpio.h>$ `! a$ ]# V* Q# D& n( `9 e; _
#include <linux/leds.h>
5 |! O+ C0 n/ U3 h. q2 ?#include <linux/platform_device.h>
8 m* V- ~2 V8 J+ }4 N0 b$ K% o& v9 q6 ~+ r1 W3 x4 ]
#include <asm/mach-types.h>' t3 F) i( b' q# {  a! K( u
#include <asm/mach/arch.h>' P# q# W' c, z# m% y; W6 {, V
#include <mach/da8xx.h>) `8 ~3 S5 w) m( m# M% z4 ~
#include <mach/mux.h>
* v  M7 m$ h: X& K' V8 S0 g
0 t. l" X, o. R4 O' S0 a$ a+ J  H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# k0 E/ X6 Z/ a' K* J. b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. L0 x* L$ Z/ r4 `9 A2 _4 S# R4 `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 r; |# x" L$ E8 D+ Z; j% x( j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 w) D# u$ ]* H
) I3 T/ y8 X' q9 C& m+ o* v2 @$ v! s/* assign the tl som board LED-GPIOs*/
( n- h3 d$ ?. L. ystatic const short da850_evm_tl_user_led_pins[] = {
, w! r; N& @* ~- y        /* These pins are definition at <mach/mux.h> file */8 @3 M3 _4 x2 k6 Y& U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 k  V0 I: r# ]% E5 c        -1
8 l/ L9 e9 \! B- W5 P5 j% Y/ Q6 U};
3 [* C$ X! _( r4 Q1 H# \
7 W( X0 ^4 _( G6 P, ystatic struct gpio_led da850_evm_tl_leds[] = {
8 E' h1 n# \7 M        {- b7 P& K9 q1 a  O" E8 ?
                .active_low = 0,
2 F' y: N+ `& `                .gpio = DA850_USER_LED0,
, @4 e& _8 `# s+ }8 _& n& E1 I                .name = "user_led0",
- L7 A" h' v  G5 j5 y5 }                .default_trigger = "default-on"," `$ _4 U1 S( X4 @+ R. L$ s
        },& M. C, C1 K+ D
        {* i7 a& Q) \" }! x
                .active_low = 0,
% n1 o/ u- e5 k3 M4 \0 U                .gpio = DA850_USER_LED1,
6 c+ ^: F( x6 c0 U                .name = "user_led1",/ Y9 p4 E8 N  V7 p6 u4 l
                .default_trigger = "default-on",
- L$ j) P$ V) p+ Z, f5 ?        },
+ a3 W, ]1 V7 H6 p$ k: u: t        {
% C$ n+ o7 `  w) `6 ~" v+ K                .active_low = 0," t# N- k. N  e' o$ C- @
                .gpio = DA850_USER_LED2,
+ n: [+ W3 U$ @3 T2 @                .name = "user_led2",9 b+ ?9 i8 _& W' ^. u
                .default_trigger = "default-on",
  C$ N1 l2 R& }. p' @        },
5 c+ @/ s1 v  G        {
) r6 b' A( r# ~0 E+ v6 b0 Q                .active_low = 0,
: }1 q" I2 E6 o8 U8 ~                .gpio = DA850_USER_LED3,! o$ i- I# V' q" v
                .name = "user_led3",
4 J# a" u2 v5 _- K# T- v                .default_trigger = "default-on",' V& u- O/ m, r; K# `9 C& M
        },* B7 J; q1 d% B5 u6 Y, \
};
0 B' {8 _9 S# Q( D
# H  J1 q* G3 l; @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  P. m3 j6 ^3 \        .leds = da850_evm_tl_leds,# l* u; y* r  e3 P3 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  N& \# @2 }: x  T& y. \: G};
$ i; M0 R2 q1 J) p3 v4 o( B
: W5 I/ A9 ~5 G* Q: I$ f$ g& Ystatic void led_dev_release(struct device *dev)
3 A$ p, `9 j# x+ E6 N{
8 B" G, d+ O! p2 {};7 Z# q  B" B2 z/ Q
5 S* A2 I; A) I! e; j8 \  [
static struct platform_device da850_evm_tl_leds_device = {
6 z7 @: C# ~: }! b        .name                = "leds-gpio",6 @8 f/ Y6 }! d1 M$ a& J
        .id                = 1,
: J! C* }& H* a0 P3 H        .dev = {
) c/ U+ K+ m2 I7 X( ?/ }; {; f                .platform_data = &da850_evm_tl_leds_pdata,
0 D6 h1 \1 z$ R5 V                .release = led_dev_release,3 D- S  \+ a8 a5 L' X2 U
        }
% T6 w5 f$ ]1 h7 |8 q! [};
" E+ A' H, P+ e  Z& v: ~& S+ g0 j& g- N! i1 N1 b+ Q
static int __init led_platform_init(void)
/ Q( |) }+ F0 E( a9 l. @( r{8 C% s* o3 W# u5 [
        int ret;$ v& k1 L" u$ W4 v& Q& R- ~5 i
#if 0
6 x* O0 Y- X( u& Z4 c6 x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 B8 D* n/ p) |" x  I( ?        if (ret)
! X$ K' Y5 s- e3 M" j9 f8 w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 ^0 f% o8 |6 f
                                "%d\n", ret);  L$ @& k4 H: {( f- o
#endif2 Y) C5 |$ [+ _8 x4 {+ S' \. n. m6 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);6 B/ i! P& e$ b. g7 a
        if (ret)
5 ]; Z# b+ w% J$ A                pr_warning("Could not register som GPIO expander LEDS");
( |  r3 z& g8 n& Z0 x! v        else+ F% }/ X0 D4 L! g& I
                printk(KERN_INFO "LED register sucessful!\n");4 f2 R; s7 @/ B* F# ?9 v, j
4 J' C7 d3 p8 E: K/ R
        return ret;
# ?; T+ a8 w4 w2 M! x}
0 Z1 S5 S: H9 ~6 k* S) G8 m" }7 g: ]8 n( S: Y, W( K9 }
static void __exit led_platform_exit(void)
' M8 @4 ^; ~( e* e+ \6 K{1 p" Z# ]- o2 q  N
        platform_device_unregister(&da850_evm_tl_leds_device);
; C4 B" q; y9 _" T4 i" y. i: z8 j$ D; q/ e7 O1 D, ]* H. S+ s- ]' F1 J
        printk(KERN_INFO "LED unregister!\n");5 Z$ F8 b3 `% q2 B' ]3 V2 [3 A! f
}
& u  j, @3 ]* c2 ^- @4 [0 u1 D1 P+ f) e1 T1 B9 l
module_init(led_platform_init);0 |5 c2 g0 s2 u+ @8 C7 L8 q
module_exit(led_platform_exit);
0 O# P$ @+ p9 h; R9 V, |
9 H0 F+ L) X' W6 v/ n, y; l$ E, HMODULE_DESCRIPTION("Led platform driver");
2 u9 x2 I4 e  Y2 w6 y- SMODULE_AUTHOR("Tronlong");
) y! r  n6 r' B' b, \3 v  XMODULE_LICENSE("GPL");8 h. L8 v4 `. ?# R/ t

8 y  @5 f- r" M. E+ r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 05:34 , Processed in 0.038203 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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