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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 y- A( C3 E/ Y' {, y7 D
#include <linux/init.h>
2 C! Q9 N+ P' I( u3 F9 u#include <linux/module.h>* Y) ]5 u- q+ `0 `( s) D
#include <linux/kernel.h>3 D2 L. p5 e1 K1 h! A4 O2 b1 [' ~
#include <linux/types.h>
8 X& W8 A. j! y2 L$ d, d- @9 R$ G#include <linux/gpio.h>
. a7 s7 R' d1 m, u( e#include <linux/leds.h>8 V- e7 x. L7 }
#include <linux/platform_device.h>2 y; u1 O1 S, h( m) ]/ v1 \% o

; m7 i% X! k5 o# M& ~#include <asm/mach-types.h>
3 y9 y& n; m/ ]- x; g" J" f#include <asm/mach/arch.h>3 o9 p6 _- |9 ~9 \2 l
#include <mach/da8xx.h>$ q- g1 N0 v1 J+ |# L6 d
#include <mach/mux.h>& U5 J4 ?% ^8 C/ l

' s* G: J4 ?2 j4 ?/ U% m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: ~$ c# N& t2 x( z) s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 e$ m% X$ K) v/ ?9 T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 O0 ?# W- L( J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  E. x1 \4 l' e
6 C  N. Y3 F& p: _) o, i; w6 w/* assign the tl som board LED-GPIOs*/
( i9 }1 B7 H2 D$ U' l" xstatic const short da850_evm_tl_user_led_pins[] = {
% S3 W$ M1 t* O/ A% y        /* These pins are definition at <mach/mux.h> file */, t% w. ^+ H# B3 Y9 l7 n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 N4 f3 {; P2 O- }- S
        -15 h( T/ B: ]8 x5 G- P" W2 u
};2 N. I& }7 g* E9 C  j8 |; \

" p+ {0 q0 M6 x9 j$ ]static struct gpio_led da850_evm_tl_leds[] = {
3 V3 w' E4 G; Y( l! N. F' T2 }        {
% H) a* j7 J' `; W' ?" Y! P' Q                .active_low = 0,$ I" q0 z9 m# p* l
                .gpio = DA850_USER_LED0,* b1 f6 v7 J$ M! {4 E2 b
                .name = "user_led0",5 W3 E' ~" l+ s' a
                .default_trigger = "default-on",
: w' d3 A7 I8 V& J# z& [        },4 s, @' Y" ]  J( O
        {
/ Y) V3 Y. e, y                .active_low = 0,
, K- Z5 c: |( i6 g1 o                .gpio = DA850_USER_LED1,* [; \4 {* d, d& T* t
                .name = "user_led1",
0 x. F- I' x4 P& a- ^                .default_trigger = "default-on",: W0 b! _0 P( G/ J% X
        },8 o( `: {" O9 k5 @+ q( w0 U
        {5 X/ c9 I' }1 \, v# K4 t7 t( ~
                .active_low = 0,
3 A5 E% G3 K7 D2 w% C. d) P) w                .gpio = DA850_USER_LED2,0 l& A  ]2 G5 p1 b! ~3 t! c' @" y
                .name = "user_led2",1 T4 r2 o- w% t* E: W
                .default_trigger = "default-on",
3 V& U6 D! r# ~: g        },
: Z1 n9 a, P" ~6 }# e        {
7 Q% |) e( t) E. K& z6 m                .active_low = 0,
0 a: B$ Q. n0 x) t( k8 F                .gpio = DA850_USER_LED3,# A/ q! U2 O2 g9 E6 i2 ]
                .name = "user_led3",0 n" ], q* C+ K: n, T  Y0 H
                .default_trigger = "default-on",
& L& ]8 g; m3 |$ f7 r7 Y0 y        },
+ a* N6 N% r' ^};- ?3 {. z5 q- \5 I& E
) {, [, |/ i: a6 `4 t# d* {8 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ ?$ Q3 C! _  d/ N
        .leds = da850_evm_tl_leds,0 q/ K( @/ m1 J0 H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 T+ @0 X7 C; g2 n: v- a  j};
; |# {7 k* S$ m) D8 ^5 [; _7 v1 q, @; j' O- E  D1 `0 [
static void led_dev_release(struct device *dev)
  D" |8 W6 z7 I( ?7 A  L& j  Y{1 y  V: g* y7 w1 L- j$ m
};4 M- f. I% t  q1 I) a0 X; ?9 ?) L  m
5 ~0 }9 C6 D# G
static struct platform_device da850_evm_tl_leds_device = {
8 G) ?; k7 A- u! @- b        .name                = "leds-gpio",
1 z) b! B0 e9 V" A# e        .id                = 1,
+ a) a& I. i4 }% `        .dev = {9 D3 m4 n2 o! B- g6 J" P: v! e% |
                .platform_data = &da850_evm_tl_leds_pdata,
7 p6 u* G# ]) S                .release = led_dev_release,
4 v% T) l- E6 D2 ^1 Z6 f2 i        }
& j/ F4 \  p% o8 g# J};% k$ I0 N8 V& k
6 ?, d% }9 k! F( F8 A- d
static int __init led_platform_init(void)
" ~0 o+ X6 A, j8 |  M{
" Q9 v" g: P; M        int ret;
+ d5 n0 A0 K  J; q#if 0
# o: A5 |6 c+ v3 ^& B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) F9 U. B  ]: r4 G% f' ?
        if (ret)
7 ?* Y3 d1 Q8 u3 }7 J$ [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! a9 F4 s/ U0 J1 ]% x: y5 |5 R4 O
                                "%d\n", ret);' ^0 ~) G6 e) u* G
#endif
7 g: A$ p  J& G2 L1 u        ret = platform_device_register(&da850_evm_tl_leds_device);$ `# \- [+ E1 s2 c+ \) G* E" j
        if (ret)2 m( {3 s9 x! I1 X
                pr_warning("Could not register som GPIO expander LEDS");
/ v& ?: n: }' N9 W  J6 v! i: Y        else0 l4 x2 G, R  ]. Q* O' s
                printk(KERN_INFO "LED register sucessful!\n");+ G  i2 ?7 s! Z4 L5 O# _
; H: n, a! x+ L# {0 {. O* ]
        return ret;" m, N( Q) a8 R
}% X" X. `5 u+ V$ y, j$ m. i( R

+ W1 ^' N6 C: w" ~; j8 e5 t0 s2 ^static void __exit led_platform_exit(void)
; C7 P# E# f& E/ \{. h7 i9 Y3 _  `5 q
        platform_device_unregister(&da850_evm_tl_leds_device);) K  l- x3 O& o' B+ C: O

) M6 Q- j# o5 z% d        printk(KERN_INFO "LED unregister!\n");. F- _0 ^; Z- r8 I' |: d
}: v5 N4 }9 i9 _7 R/ {- z6 H  x

$ E9 _* _8 y' ?$ omodule_init(led_platform_init);
( H' d5 c3 P3 D2 N, c% Gmodule_exit(led_platform_exit);; ~$ i  d8 `/ [2 u3 O
$ a3 B  }( d( a. p% `
MODULE_DESCRIPTION("Led platform driver");' v' S6 w7 z, P, h0 b
MODULE_AUTHOR("Tronlong");
' c& f8 q% G6 r$ U& ]- j; PMODULE_LICENSE("GPL");5 _/ y+ y% n/ a' J( Q
- L3 ?: c2 h* ^3 v& d8 x) y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 21:28 , Processed in 0.042464 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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