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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* N+ k+ F" v9 j% j, A#include <linux/init.h>/ q. i2 F  O! [8 v* Y  K* }# K' P! Z; c
#include <linux/module.h>3 X7 d9 x' ?% w9 a! g! a. F2 n/ ~
#include <linux/kernel.h>/ Q# f! j$ P3 D
#include <linux/types.h>" X! @! ?) _- p0 c8 x0 l
#include <linux/gpio.h>
, }2 \7 j3 H. j0 n  j8 f#include <linux/leds.h>
- }! B' s0 _+ ?$ _% X#include <linux/platform_device.h>4 D) V/ f8 `: t& Z4 M7 G

  b) ]/ D3 I( G: G) V#include <asm/mach-types.h>
- o' b; ^9 }. @* U4 L#include <asm/mach/arch.h>& R* C9 n1 l( N5 ]* J% E, E
#include <mach/da8xx.h>
6 K. _& `& g  e7 n8 ?- I7 G7 g#include <mach/mux.h>
4 |. i8 j6 r5 F" j2 x' O! p0 U# C3 K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ u+ e6 |, `" r* ]2 ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& H$ D% z/ G4 A% h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& k( Z0 L. ?3 n( e/ w) K; C& k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& b8 w# @: f+ X9 c

: _5 D, [1 R0 z$ h/* assign the tl som board LED-GPIOs*/
, @' [3 v' m" i+ N( rstatic const short da850_evm_tl_user_led_pins[] = {
: k2 H2 a3 i- k+ B8 b        /* These pins are definition at <mach/mux.h> file */. ?* ^7 P0 a: ^: d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 r# v2 u5 j# Y5 \: q$ W: P        -1- ^/ ]- V2 u* |  I7 U: V2 X
};9 P$ \4 Q  ~; \- |5 f
& o% ?$ x9 {& O- f
static struct gpio_led da850_evm_tl_leds[] = {
! v) P6 e8 @( u' ^5 D6 N; E+ V        {
# n2 `. g+ Q  V2 m& T' y& J                .active_low = 0,6 }6 J- ?, d- ^- k; Y
                .gpio = DA850_USER_LED0,1 `" [: ~3 \3 r* ?% f& [& P& A& a
                .name = "user_led0",- F* m) `2 l# k  _3 g$ {+ B
                .default_trigger = "default-on",
; V1 ?& j0 n2 p8 a" G        },
) X2 d4 h% x- Y        {  z, ^- ~1 F5 A: j
                .active_low = 0,1 I+ d( [$ w1 i: o
                .gpio = DA850_USER_LED1,
& N' Q9 f2 v+ t# S5 f                .name = "user_led1",% g8 u$ z& S% j, W1 |1 o
                .default_trigger = "default-on",; M3 V! A4 G, z. [& [; i' r
        },* d& \# y. N6 B% _' `2 n
        {
( w' Y1 V5 n+ X4 ?                .active_low = 0,5 I/ }7 t! ~! Q; f- I+ ?; i) d
                .gpio = DA850_USER_LED2,$ [" w+ D: U$ Q3 [4 i# i% @
                .name = "user_led2",2 o) b( X# C( e! p' O4 y, N
                .default_trigger = "default-on",
: H" Z9 ~' b. X        },
. r4 c# ^7 f! r; D0 [% z        {8 M- G& J) n4 n" p! ~
                .active_low = 0,
- F$ _3 B8 C9 H  `' P                .gpio = DA850_USER_LED3,2 z+ O( ]) j. o9 X
                .name = "user_led3",
& N, h! f2 W- I! A                .default_trigger = "default-on",, J3 _0 O9 g+ }5 p1 h
        },
) i4 P0 f. ?/ d$ g6 ]# d7 D};
$ c& l6 N; j& a( ?
) m3 M8 R( c0 O- n& jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ N( B; m- T1 x  ?4 V        .leds = da850_evm_tl_leds,1 u3 Q9 z& X' q( K2 X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, E) `9 y. |" E+ g$ d
};
/ j: d. `  O3 j% E) ?8 V- G3 j
static void led_dev_release(struct device *dev)
0 z, q4 s9 p; X# K  {{. L3 ], j" B; H6 F( D3 h
};# `5 n- w$ y& Y4 r; C% q
; V+ o4 f6 B- }2 M2 l
static struct platform_device da850_evm_tl_leds_device = {& S. q9 W9 Z: _2 f+ q
        .name                = "leds-gpio"," l* h* C' a( u6 _  f
        .id                = 1,* B6 h( E6 X* ?- ~  J, F+ U5 C) O# e
        .dev = {
* L' P* N' X& _                .platform_data = &da850_evm_tl_leds_pdata,( w  w& j- e7 C4 }2 k# J# u9 {
                .release = led_dev_release,
' [; B0 b/ L- D7 K+ b6 R        }
! _- V/ n4 W: T$ b9 [};
# p& i; e9 |/ ]0 i0 L/ D. M0 z
! C4 G+ S" G5 {  x# ?8 Vstatic int __init led_platform_init(void)/ L0 b. R7 B6 U, B
{
* O) `* F) @9 Z& I        int ret;8 M$ Y* o: o$ G7 j: F
#if 0$ I+ v; y' d; V, x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
" `: W) I7 Z/ T. y: l$ A+ z        if (ret)
9 T0 ?$ `; Y- B3 s( Q! t. [$ p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 N( c+ e% o( J+ a* [4 u5 ^
                                "%d\n", ret);
2 n  ~- l  Y4 I5 G, x, b9 @#endif8 b1 a. h! ?1 }1 D
        ret = platform_device_register(&da850_evm_tl_leds_device);. l1 ~* j6 A- G. W/ T
        if (ret)2 X- Z& a* j- b' K  p+ U* X
                pr_warning("Could not register som GPIO expander LEDS");
+ Z( q) ^3 F+ F! p" `        else/ f! J0 q& C+ D( Z/ [5 h; p
                printk(KERN_INFO "LED register sucessful!\n");
( O0 p2 K/ O  _+ F0 m7 y
2 s/ T/ d: M0 B4 _2 i5 Q  k, Z        return ret;5 R2 O, O1 ?1 R$ R
}
* l- s2 _& Z9 I, U, y1 |  ?: [- Y3 [0 a1 h& Z5 l
static void __exit led_platform_exit(void)% d5 v' n! Z+ A1 g7 j1 B
{
9 q- U4 Q8 C$ W  W8 j: T) o        platform_device_unregister(&da850_evm_tl_leds_device);% W; o, d( X- m

, d: |5 Y- ^$ I  A) ?* F5 Y        printk(KERN_INFO "LED unregister!\n");  i' a# e* Z7 g: I
}
3 ]8 I: D/ H, z) `5 o, C: j! }- ?' x( M* j5 b+ m6 W
module_init(led_platform_init);1 m" N: ^* e( q) N. q7 x
module_exit(led_platform_exit);
( T2 Y) r% ?( z) d/ f8 Q  e: n8 N0 k
MODULE_DESCRIPTION("Led platform driver");
& ?6 a4 g1 i$ o; P- X4 HMODULE_AUTHOR("Tronlong");% ^1 C9 T2 B0 u: u4 E, K
MODULE_LICENSE("GPL");
! K' X# d/ @! w, z; j% x
  d! f7 }5 Z4 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 10:00 , Processed in 0.036856 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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