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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- l7 X6 @" b# a5 N- P8 C5 E& ~#include <linux/init.h>
0 T5 W0 Z+ c, Z& G#include <linux/module.h>/ y+ _! L# A8 o( d% n3 x9 l
#include <linux/kernel.h>- z; |  E) _4 M( w7 N, `7 ]
#include <linux/types.h>' A# r7 u1 ]4 c3 `, q" c9 ]) M
#include <linux/gpio.h>4 X) U5 @5 g9 m2 O6 J1 ^- }
#include <linux/leds.h>6 M9 l) j* a2 v+ a. v
#include <linux/platform_device.h>
* o8 q% B; h- q1 R/ d8 [6 I
# p8 W' `  M" E% x#include <asm/mach-types.h>
4 k- {- c: \' ]/ F3 C& x* b#include <asm/mach/arch.h>9 Y& _1 M% x/ m6 k
#include <mach/da8xx.h>
/ p# _- ~& b  d; I3 Y#include <mach/mux.h>6 |3 W! M9 s; [' v' ?# h
! I* `; @0 P/ x% E4 U% P1 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, k  q8 p( z  O$ N2 i1 L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, j! r, o; i1 [+ t$ J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! V( K6 h( R6 b& e9 n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 c" F' u) p$ m0 V( o2 R  {) M) c+ i1 Z7 ], u$ ?. A
/* assign the tl som board LED-GPIOs*/
1 s, {$ A- W+ pstatic const short da850_evm_tl_user_led_pins[] = {
. v* k7 C- {& Q4 e7 g0 A        /* These pins are definition at <mach/mux.h> file */, m) w. Z7 }( w& X/ u9 B1 R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 |4 r, i1 k8 ^: n; ]9 x( [        -1
* h) v- z# u$ Y: R' ^" y2 T) {};' o) G% y* k6 E* k4 l* u* b

3 [% V% b0 d: k$ q9 y  D5 Bstatic struct gpio_led da850_evm_tl_leds[] = {
" O) |; Q+ ]7 i. k        {! P% j, t: U( |+ f8 R% d
                .active_low = 0,
% e  t+ d3 r6 [  x& [                .gpio = DA850_USER_LED0,
' m+ w0 a+ |! M/ u0 j, L8 C                .name = "user_led0",
* c# M/ L6 X. W; }                .default_trigger = "default-on",! p- T' h) t/ Z- M* l6 e# q, f# \
        },3 q5 n3 t, i( e" L0 O4 Q! C
        {1 K% d. f0 I. q6 x" v
                .active_low = 0,4 S( H% Y# E% y7 o+ U2 G
                .gpio = DA850_USER_LED1,
; M/ P% B2 i( M* {0 h                .name = "user_led1",
3 o5 k( @9 ^  Y- b5 o% O                .default_trigger = "default-on",
( K! y2 {$ x, j! j        },2 @" t" X+ M# M7 T+ s/ N: B; X$ W
        {
) R2 I. E/ d% B. x9 r, c7 |                .active_low = 0,
; Z- }2 t! v' I                .gpio = DA850_USER_LED2,) R4 O) c. t$ Q4 c9 w+ p
                .name = "user_led2",
# L( N5 f& R: D2 z4 [                .default_trigger = "default-on",- L1 a% z/ S' `% G' v! Q6 k0 }
        },8 l) T" [3 z; L1 h) |, h
        {4 w  P1 ~5 Q& `; {8 w; y
                .active_low = 0,
) b/ s4 M9 O8 u9 u5 Z5 j                .gpio = DA850_USER_LED3,
& ^* o" z5 F: y; E                .name = "user_led3",
, ?" Y' E. F" }' Z! d# U" }5 I                .default_trigger = "default-on",; T5 e" ~7 D* |* E4 E, a7 \
        },
, |  J: f. [' ?: A};
0 d5 Y; v( V* G' _9 o" b8 ]  i2 M/ _7 A# O" J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, m7 A: }! U% D/ L
        .leds = da850_evm_tl_leds,
% F- P  o7 W, P9 k, F8 S2 _! V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ }5 O4 G0 e5 i
};
7 ~/ v: ^' s7 V8 ^* r6 c' g& B; y+ F5 \6 V8 A  E2 j( p0 [
static void led_dev_release(struct device *dev)
: Y4 e  h/ z, z( ?" X3 y5 x{
% M! y; D. ^( S: b};
; p- o; U+ c/ y, E# G* ?, h, O- {. I0 Y: y
static struct platform_device da850_evm_tl_leds_device = {; A1 h( W. A7 A- X
        .name                = "leds-gpio",) c4 d, K; C, g3 ^$ a% A# G
        .id                = 1,/ A) D3 N. ~( [6 [' ~! D% Q8 g2 u9 v
        .dev = {
+ @  \- i# r* T9 Q( j) h                .platform_data = &da850_evm_tl_leds_pdata,, N1 A& Z% _" [; i# i2 A5 y) _; ^; A9 X0 U
                .release = led_dev_release,* ^- c' S( O& z' ~* r5 s
        }0 Q1 H& r/ R' P  B! j
};% s' Z( k, r$ z3 k8 t6 e# Q

* {; H9 ^, m* z9 v: Jstatic int __init led_platform_init(void)
  R! O( y  O' z! O{' i. Q& d# H$ i
        int ret;8 ]2 o2 H  f3 Q. @& S7 |
#if 0
4 _1 e7 v2 C6 b6 J! u  D+ T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ u7 e* r& s, S8 A        if (ret)
2 q) I$ \% s0 n4 _! e( c/ {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 u0 U5 ]; f4 I. R# _4 ~
                                "%d\n", ret);4 ?" o& p& Y4 C5 l
#endif
9 W8 J  X3 [3 \" f1 e6 t        ret = platform_device_register(&da850_evm_tl_leds_device);
4 V! E3 _- a2 @; t$ |        if (ret)3 J1 @4 E! v: m
                pr_warning("Could not register som GPIO expander LEDS");
. H3 J: J4 @" ]" {; U        else7 h% c' o& N9 M3 e* L
                printk(KERN_INFO "LED register sucessful!\n");
2 W1 D  y. O6 v8 W3 F
5 [* M; t) G! q" b7 z( `; F        return ret;' D1 l6 ?3 r6 U4 f
}
; ~1 V9 ^  }3 x9 a1 \( x: ?% w6 T: [0 k4 y2 a  g- z
static void __exit led_platform_exit(void)) z1 P+ i: F1 y  |( e. J0 W: }
{
5 g+ j7 Z+ b$ e5 d& p& k+ Q        platform_device_unregister(&da850_evm_tl_leds_device);
' _- X) ?7 N' F5 ]8 B. H, l8 O" |) L) Q' u- f3 _1 X: s9 B. l/ _% a
        printk(KERN_INFO "LED unregister!\n");( ^$ s0 a! V- {! s; _* u- ?6 s
}0 C) E8 J9 C# A, j! V6 f
% C  B9 b; I, ?* j+ k$ |
module_init(led_platform_init);% D+ }4 {$ L: X
module_exit(led_platform_exit);9 c5 Q' Z9 W- e! }
" n% U) Q0 K6 s! o3 A9 |
MODULE_DESCRIPTION("Led platform driver");$ ?, K1 ^0 e5 e" O9 b9 d
MODULE_AUTHOR("Tronlong");
* O$ q7 P9 E- G! tMODULE_LICENSE("GPL");7 @) i- s% [* Q; Y5 ~2 B

, q  M7 {" a3 R0 S: t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 07:08 , Processed in 0.042221 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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