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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 |: h; \" [$ ~+ `/ M: A% J#include <linux/init.h>6 @6 x" x9 E  q6 }
#include <linux/module.h>4 W5 z; G9 @9 P# K! T) V7 S
#include <linux/kernel.h>
4 l* P. G9 i2 d# q. ]: N#include <linux/types.h>
9 t" ]; y8 Z: [8 @/ o#include <linux/gpio.h>
$ a, R$ L( F) Z# D#include <linux/leds.h>4 g/ l& c9 Q1 i9 u/ O' |
#include <linux/platform_device.h>
# E% A6 F. d# f+ O
% F6 B* y8 y% W1 ~2 N8 P#include <asm/mach-types.h>0 f4 F$ I8 ?' F5 f5 k
#include <asm/mach/arch.h>
- l4 N9 U/ d3 d+ b% i1 F#include <mach/da8xx.h>
$ F8 k4 X. M5 T# Q0 }# V2 S# Z#include <mach/mux.h>
+ i) X) V3 u* o7 T9 ^% K4 n7 J( f3 ^$ P0 W% s" S6 p8 g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). R( y: D, N  T0 F1 m3 W0 C; N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! r( {/ o# _9 l) X  |. L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ p2 j2 l( h* c2 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 \% P1 W0 x( q8 W$ v8 x* H. W$ C
' R2 K4 [4 m* D% G
/* assign the tl som board LED-GPIOs*/, H' q# _5 k( I1 z; r
static const short da850_evm_tl_user_led_pins[] = {; F8 v- u8 n( W- v8 R/ S8 S, G
        /* These pins are definition at <mach/mux.h> file */' C# w- C1 S# @8 s# v0 l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: y0 V) n- [( x8 A' r: ~9 Q        -1
' N0 j. W6 t' N};
8 i6 e3 n' ?" G' y5 T% U( L/ V; B: j, W
static struct gpio_led da850_evm_tl_leds[] = {% n% a* S: J( [4 j& g
        {% z5 d9 s+ h0 ?1 T2 c& ~
                .active_low = 0,
( ~/ ]4 Z: N' B) _* D% ]                .gpio = DA850_USER_LED0,
. {% h: C# @! D; |                .name = "user_led0",* N, ~( [  v8 b. I- ~
                .default_trigger = "default-on",9 i6 B3 X+ f% z9 k  m) O5 U
        },
& y, d( j$ Z% u        {, J9 I* m7 a7 Y  e, d4 M
                .active_low = 0,3 t+ j$ `) o% y; E2 ]- t& m' n
                .gpio = DA850_USER_LED1,
, I" g: q6 Y0 b8 f: l5 ]% u5 S/ w                .name = "user_led1",7 ^3 J$ M/ |: w7 a
                .default_trigger = "default-on",
' l3 `# L8 u( C5 H        },4 a" e8 S5 X  o, h$ q$ X- ~: I
        {
' w' f; y2 j8 U: Y  g: i( @" ]                .active_low = 0,
7 a: N# D  D/ R* B3 f+ f1 t                .gpio = DA850_USER_LED2,9 A0 G- |$ z9 D' B
                .name = "user_led2",
8 m* E/ ~8 A9 Q                .default_trigger = "default-on",
; n- `" a8 f$ A4 K- L7 G$ ~        },
2 t! ]% ^# D6 w" z% w6 H        {, l( A! h% g* W+ f
                .active_low = 0,
. C9 L6 d/ \  j3 U& A$ V- D                .gpio = DA850_USER_LED3,
; K8 ~' ~4 \# l# f  K1 o: r  a5 T2 i                .name = "user_led3",
! T* m9 @# U/ w0 N% K2 q                .default_trigger = "default-on",; |2 y+ ~4 U) ?
        },. @% y. C. b! W1 O
};
) |/ m7 C5 c8 v" |9 u# b, y8 e) x4 G* D3 `9 P. L$ l  g+ ?5 O- {' c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 V4 A' I$ `, H' @        .leds = da850_evm_tl_leds,
* g+ G8 q% }! i2 }# w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 f. U$ C. j  m+ U8 b) J1 k& e, Z9 Y};  U. z5 N% N- W
4 T" y2 E" W9 B. b# Z; m
static void led_dev_release(struct device *dev)% {1 O4 `7 X% O) t% a
{
- i) M+ u3 d4 `/ f# Z7 {7 z};0 Q  `" D" j+ @

3 o9 M0 N* v4 e+ lstatic struct platform_device da850_evm_tl_leds_device = {$ K  R  i* ?$ |4 k
        .name                = "leds-gpio",
7 I# A9 n7 U# |7 k% S' K) e        .id                = 1,
0 P; p# z9 h( p4 G( y0 D$ O        .dev = {, B; n5 ^- _; [& C% U
                .platform_data = &da850_evm_tl_leds_pdata,! M$ V( ~' V& ]: K8 J
                .release = led_dev_release,
4 n6 K1 l( V. ^* n+ ~        }5 q5 }6 z0 q( P; a; A7 ^% e/ s5 @
};/ v5 ]0 X& \0 \' b5 I) V

5 ^4 K) X. |( p4 l6 Bstatic int __init led_platform_init(void)
0 c7 h; v5 Z" G{. g" v/ H- n2 P# |1 K/ A& n
        int ret;
5 f: ~0 E6 I; x* q- i#if 09 o6 b2 i' r( X1 K/ ~1 A7 X' D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! Z3 m; `+ K& a1 P# K, v
        if (ret)
! [0 Z9 u" u& f" L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". m/ F: ?7 X6 r- X5 u7 A1 O
                                "%d\n", ret);7 S' W8 u. c4 c9 ?: ?  W
#endif
# ^/ \1 u8 a5 W( f; T1 Q2 v        ret = platform_device_register(&da850_evm_tl_leds_device);
$ p! J+ O2 t3 D* m! n; r. f" `        if (ret): F9 ]- u! t/ s5 Z: E
                pr_warning("Could not register som GPIO expander LEDS");. n2 j( z7 Z: K' g
        else3 P" @) `# W! U0 y
                printk(KERN_INFO "LED register sucessful!\n");
/ o# ~" a  b2 [2 o1 K4 N! K  ?: x  h, W& V* p2 K0 Q) H
        return ret;
0 K9 m5 ]# g8 I2 S5 O}
8 A1 q9 p. [8 p0 ?. ?3 ?9 w, d6 ?3 S$ C1 x/ ]7 X+ g7 C. k
static void __exit led_platform_exit(void)" s, P0 L1 T/ _6 I' q
{, A, j- n* \. H$ o# v  l& b
        platform_device_unregister(&da850_evm_tl_leds_device);
- e( H4 |( F0 w4 `; \& J: H" k" j; b, P2 Q# e9 t0 ^8 ^
        printk(KERN_INFO "LED unregister!\n");+ `3 E& M8 r9 |+ v3 G" I+ x
}) c7 }* U- n- l, o2 a
. W( r' \5 R% f; e
module_init(led_platform_init);
4 n6 W! N9 N; u+ L0 hmodule_exit(led_platform_exit);% K: C& P* h! E: f$ a0 {
  ^* y9 N' D: c' M
MODULE_DESCRIPTION("Led platform driver");" ^! ^) Y1 R6 ^; i" c! X+ a3 {
MODULE_AUTHOR("Tronlong");
( ]0 G- q* D1 c. w4 o% k+ H7 ]( {MODULE_LICENSE("GPL");
" S* u: d! u& q& v* ?5 \* e, o7 d/ O0 m! N2 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 13:06 , Processed in 0.036063 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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