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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 t5 G1 e9 o) h- @/ g: O
#include <linux/init.h>
: w' }% q# g1 B6 X#include <linux/module.h>
4 H. k; X9 V  X6 w#include <linux/kernel.h>
0 [; {2 p% x& L/ I#include <linux/types.h>
/ |/ o# B5 @) n( Z7 E8 G#include <linux/gpio.h>
4 f: w) S3 L% }8 C+ C# g9 T/ R#include <linux/leds.h>5 \3 \+ S/ [5 d1 g5 D: ?
#include <linux/platform_device.h>
8 T8 x" T% d: A: B/ a: G
) t! L. _2 {. O#include <asm/mach-types.h>. x: [* z, {# M( G
#include <asm/mach/arch.h>, m) j: Z8 v' f7 E
#include <mach/da8xx.h>
" \2 @6 ^* b4 `# r' |6 v. Y#include <mach/mux.h>8 K3 J! R: e1 }4 a3 C

# g( Q& Q6 ~( m' I$ g( a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 Y2 y( D' Z; Z% Y+ T0 Z% j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' n' L9 @/ {- V% L" i  ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 v/ I) t, r* Z7 F) d$ F0 P) i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 a6 l( ?# D- p0 L; @) p+ a6 B4 ~. a/ Q. s2 T
/* assign the tl som board LED-GPIOs*/, `, T2 U# @( o) B0 @4 v- N2 f
static const short da850_evm_tl_user_led_pins[] = {
& j7 y: d1 f- B/ ?        /* These pins are definition at <mach/mux.h> file */9 ]* K  B- c# T# T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 Y4 L1 N$ f& w! B        -1
# q/ z/ H, `; A5 r};
1 }" J" v" {5 m! ?, k* Y3 F. P9 L- g2 f3 `8 s! @
static struct gpio_led da850_evm_tl_leds[] = {
1 g8 X% k/ F2 b/ f        {
# v# [: z- j3 W" k                .active_low = 0," Y& y6 J5 R2 f' V
                .gpio = DA850_USER_LED0,# L9 J8 Q+ }0 I; z, X$ g
                .name = "user_led0",! L2 R, s3 a$ u+ R
                .default_trigger = "default-on",
% w9 n& |7 n! |2 Y- `. j- j        },/ X/ t& X" l5 x* l7 N  j3 W
        {8 B* ?$ r1 H) @- ]6 \
                .active_low = 0,9 M2 R" {2 }) p- _8 w' e5 L1 H
                .gpio = DA850_USER_LED1,
: ]+ v- x0 o9 V5 G2 l5 g5 v5 s- |( I                .name = "user_led1",
1 q1 ^; U8 j2 {5 c0 t                .default_trigger = "default-on",
4 Y3 \+ _2 `) X/ E! ]9 G& \+ q        },3 L) ^) X. ^5 t! h* t
        {
5 u+ V6 @! B. {                .active_low = 0,  J/ I. A: @" K' }% r9 R
                .gpio = DA850_USER_LED2,; J; v% y9 X, x2 @/ u
                .name = "user_led2",1 U; m2 L4 ?4 {6 f! v6 I
                .default_trigger = "default-on",& l- w& z( V3 i; B% [+ R
        },
8 F9 [( D* I0 M8 U  p% g: ?" V6 f        {
  ]/ T# i+ A, L. X* ?                .active_low = 0,
3 {( l& u( o& \7 g. h. e                .gpio = DA850_USER_LED3,
, T' Z2 Q' B7 d  F                .name = "user_led3",
8 S& _2 z4 F5 g, f4 w% [                .default_trigger = "default-on",6 j! R/ k2 C. k" u8 C
        }," k" U+ p5 M- I# F. Z' B+ _
};; ?4 K* q6 a# O5 a
1 c; Q- q4 |" _- {, y* E) v) W" a" J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 l$ a: j& i/ b. F: @1 Y+ y; O* N
        .leds = da850_evm_tl_leds,& o1 \7 y' m$ E8 @' d4 R( y  p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 y* Q+ T0 }9 u- z% \* ?9 Z
};1 s: u! b  k( Y% A8 a
/ Z* X7 B$ j/ ^# i0 g* w
static void led_dev_release(struct device *dev)
2 R( W5 s& Q! H  d{
+ K2 l9 N, m5 M( S$ u% C};2 a3 y9 \1 P) J# v' c6 D
4 k! r& _' @0 X  r: ~  r
static struct platform_device da850_evm_tl_leds_device = {
/ M) {- _1 |7 ~/ `9 W. V5 U        .name                = "leds-gpio",4 @, z4 z& _0 [( \) t
        .id                = 1,: S$ p' S% s& p) R& G! n* R
        .dev = {
2 D6 {8 ^4 ~6 C& K                .platform_data = &da850_evm_tl_leds_pdata,
1 D8 ^' T# u& t5 h  R! Y" n                .release = led_dev_release,# i9 e% h; }( Z& k% {) M
        }# S- F+ t8 d: k% T
};
+ b7 n$ x* G  l: L0 Z7 I8 V3 K! E  s7 I0 k/ u: N
static int __init led_platform_init(void)
( n; p! ^% {" y7 s{
% i# C0 s# l3 f2 W6 [        int ret;
# J( _0 x1 f9 w  t' l: ^) p2 O7 u% ?#if 04 a2 g* a7 |* R" K( q( C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* N0 }( l. E* c! a  z9 e        if (ret)9 q0 I" A9 ?% ^+ s: P9 k  O/ L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* S- n4 a# B1 K) l) T7 q  v+ g
                                "%d\n", ret);
! D0 ]; _2 C. e( _% R#endif6 @$ Y. p& }) Y: B/ r0 c- H
        ret = platform_device_register(&da850_evm_tl_leds_device);% ?5 f8 n( X5 K& J
        if (ret)4 a+ _' v, V& S  ^
                pr_warning("Could not register som GPIO expander LEDS");
( _0 D1 B% Z5 U8 _# E# {$ g        else2 l. {, O0 _7 `. I( N8 Q
                printk(KERN_INFO "LED register sucessful!\n");
9 l) u) {9 A2 b' V
' U& y% Q, r2 m* C' Y, z! f7 x        return ret;  T0 j1 ~5 M* O, }: R; ~" B
}, Z( _: f- ^  _$ a1 ?" q

) ?9 K1 N' M, zstatic void __exit led_platform_exit(void)1 R: K0 L8 V) B4 O0 L# |) `& z3 v
{/ E$ \/ R1 v2 v: Q( M! O
        platform_device_unregister(&da850_evm_tl_leds_device);
8 C3 |9 t5 J; W  L9 m; [4 H8 P1 v7 {" K) ~# W3 n* H
        printk(KERN_INFO "LED unregister!\n");
, Z/ d) D6 w, x. `$ _0 r}
7 t% ^7 |& e  T4 F: E
# Y0 a& ~9 J- b' k- {7 Omodule_init(led_platform_init);
: k9 M  t' T( n: r2 y) s$ `module_exit(led_platform_exit);( T4 e/ f# {) l5 g( d& ~" f

% ?$ V- L+ v% I6 W) @MODULE_DESCRIPTION("Led platform driver");$ u' d) M( c" i/ _% U$ P8 J. n
MODULE_AUTHOR("Tronlong");
: G# a4 {3 ]7 ]" v! E7 L, BMODULE_LICENSE("GPL");
% g. [6 W# s6 C+ T5 W$ H
9 f/ x5 z9 @4 h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-11 17:40 , Processed in 0.041126 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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