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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 r' j5 ^7 L% P8 u& Q& R1 x#include <linux/init.h>. Y# [* C9 i9 {7 ?9 q' o" k
#include <linux/module.h>& f" V3 x# g' z/ t: d) t$ S
#include <linux/kernel.h>
$ w6 K- Y2 n9 a% x) y7 v#include <linux/types.h>0 p1 P6 n5 Z: C9 Q! \: a
#include <linux/gpio.h>
  D7 n  y6 t$ i! \5 e7 A#include <linux/leds.h>
$ I1 B9 L- y0 q# X9 y1 K#include <linux/platform_device.h>
6 }4 S/ Y5 c1 [% h; o+ O
7 [% X0 r: i6 i5 s' s. _2 M* S#include <asm/mach-types.h>
9 S; i6 f' w  Y+ O0 v; B! r#include <asm/mach/arch.h>
% Z4 W" V9 T: i4 x# H, |#include <mach/da8xx.h>
7 i% S: ]8 T5 @6 p/ t, B2 }#include <mach/mux.h>! ]2 A" y7 }9 D! b( ?

6 _- c5 u7 N5 }0 o7 s( Z1 x# Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 e7 }4 w) _' N' V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 A& _1 N' |& w2 V& [4 @8 H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- M! G4 W$ M3 m) d! R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# ?0 I% ^% O/ O
% v5 C: o0 [$ N/ D+ E* f
/* assign the tl som board LED-GPIOs*/7 R. I9 `" e; T# y
static const short da850_evm_tl_user_led_pins[] = {. r* v, N. P0 S) ?
        /* These pins are definition at <mach/mux.h> file */
- Q6 y, `- t' k- F7 \+ k        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( Y6 e# s2 v5 C        -1* \8 Z0 K+ g6 H3 j) D
};
6 p; z2 e" y1 i+ X7 S
' F) R) N" n! ~& ystatic struct gpio_led da850_evm_tl_leds[] = {
# L$ L0 O% M1 b) C1 S' E7 x: C5 r        {
5 J5 p  G) {9 y$ P- a: _                .active_low = 0,
3 j$ D1 M# A- h) L( t' V' z* |- F                .gpio = DA850_USER_LED0,  d8 D6 D9 n( f# E! |
                .name = "user_led0",
1 W# i) u* n  s1 B9 W! {: {" W                .default_trigger = "default-on",, h  t! ^, f* _- I. x' k
        },# n% S3 q5 ?4 x4 G- e# A
        {
, g- q' K! e( g1 W1 `                .active_low = 0,
, b. C+ C# O2 n+ O! J                .gpio = DA850_USER_LED1,
1 T, z! ^# j0 ?4 j# X1 P3 S                .name = "user_led1"," ?* f" }, E) N" N& `- V3 M6 |. M
                .default_trigger = "default-on",
, g) W( o/ P: C* Q        },/ a2 [  f/ S) y* Y0 r
        {. S) o& @+ o  c
                .active_low = 0,
( n  ?4 t/ H" Z' R9 ~* ~8 @0 x6 T                .gpio = DA850_USER_LED2,
+ B9 V7 }7 ~, o& b- f" M0 R* n                .name = "user_led2",
6 [" Z% \( x& {7 y" F                .default_trigger = "default-on",3 T# ^  W& B  D: p% D4 q! I
        },
- [" l9 p3 T9 V/ m8 c' H        {3 b$ ^% U7 K; N& L0 z' S
                .active_low = 0,0 X8 d+ b; \( t4 k; _6 i( n
                .gpio = DA850_USER_LED3,
4 x: x+ Z& _; V& X% y                .name = "user_led3",
$ c1 G7 N* J% I8 m+ c  }4 ?: i                .default_trigger = "default-on",0 F! p+ E$ ?$ `
        },
3 h' [9 D3 y7 e/ a  ?4 Y};
. x! C* s6 V" Q3 }  L: M& \& W1 _8 v5 E4 o2 G1 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) O, ~* r+ n# D6 n
        .leds = da850_evm_tl_leds,
7 |- L& T  j/ @+ E  K% \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& j* Y) C# T6 `) D4 E$ D};
7 C% z/ O! {" {# H
4 j- N8 [* X3 u; O/ I% Dstatic void led_dev_release(struct device *dev): |+ K" e! l8 h- H8 A8 O% n+ P
{/ c; t+ c, @, Y6 ^) l
};* E- C7 |" a0 c2 V3 t& B
, G! S& J+ f! A5 S
static struct platform_device da850_evm_tl_leds_device = {
2 S! l- t  S; q        .name                = "leds-gpio",
/ G# E: W) U6 |9 i7 I7 \6 t        .id                = 1,
, z1 b) K9 ~8 X5 [        .dev = {1 Y3 b9 _# M! y4 [
                .platform_data = &da850_evm_tl_leds_pdata,: x9 f+ Y9 C. V, w* H
                .release = led_dev_release,
0 E" B6 j# e5 i3 r5 e        }: s' M, j7 q) F" N/ \
};) S% }* p* R, x- S/ i5 L

2 e# F! H3 w/ Q: I$ y6 Qstatic int __init led_platform_init(void)+ h" k! O+ V" f) L: q
{
, F1 D" K8 Z% Y# s        int ret;
+ }4 |1 A2 e" \; y% c#if 0
) l: h( g" i5 f* D0 o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) n& L$ ^$ E/ ^/ P  ~
        if (ret)% j: b4 X$ d) f( Z/ d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# P* G$ `2 S* U! j% V% s                                "%d\n", ret);
9 L. o% E6 K0 w#endif
9 J* g7 d$ w% j: f" x        ret = platform_device_register(&da850_evm_tl_leds_device);
5 \" q$ L2 `1 U% m) g% J3 W        if (ret)
9 G  y6 v8 [1 I1 x                pr_warning("Could not register som GPIO expander LEDS");
7 I3 ]  ~2 w; l& U4 D        else
# n* N) r' K% U" D# ?! z% c6 A+ r                printk(KERN_INFO "LED register sucessful!\n");- z, @, S, R5 T. z! R
( z9 O  }1 g- ]
        return ret;" t; L4 }1 T8 k7 p6 T
}
4 u* `( k4 F( j# a" I
. T6 p- [: z4 V$ T! w1 Sstatic void __exit led_platform_exit(void)* u0 x+ O7 m7 C; o
{' \8 v4 j9 ^7 L
        platform_device_unregister(&da850_evm_tl_leds_device);
; i& P9 D9 O, c( w" M5 }7 H! b( y3 a; L6 c; t, c6 a$ Z) X! k
        printk(KERN_INFO "LED unregister!\n");
. r$ a4 Z/ V. c6 E2 S}
1 |$ V% A" B2 A( k. ]( m& K. U; T4 u6 T% c+ ]9 a% f7 r6 B9 F" {
module_init(led_platform_init);8 X) E# \5 l; C% q" {7 m8 U
module_exit(led_platform_exit);2 C" ^1 |  k7 T6 s. G. T
* T: C9 a; a' k) k- O5 k8 [) ^
MODULE_DESCRIPTION("Led platform driver");
/ v$ w. |; }6 d% [- |) nMODULE_AUTHOR("Tronlong");1 x5 P$ |) m6 u* U! r
MODULE_LICENSE("GPL");9 }, o4 N" r0 Y  p6 Y
# A% p! `  D" L% {& h! ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 17:46 , Processed in 0.037580 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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