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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 _7 I1 S5 U: {7 G0 W3 i
#include <linux/init.h>
( U0 f; o( [+ ?' g#include <linux/module.h>( o+ w0 T7 d% \  _
#include <linux/kernel.h>4 |  P( r7 m) T) h
#include <linux/types.h>
) C) b! g5 [5 H( _/ U#include <linux/gpio.h>
7 {3 k& P2 M0 U#include <linux/leds.h>
% C( V) N( q# ?1 w' J& f* u2 [#include <linux/platform_device.h>" B! C: @3 z' V8 V( w- Y% T

; d& y* X- \) _  H, g# p#include <asm/mach-types.h>
% l* j" C" ]5 S* s4 n8 }# g9 k  C8 w#include <asm/mach/arch.h>
- D, }8 v' `7 t) T#include <mach/da8xx.h>  ]2 ]$ l) F- D7 @+ L# l2 Q9 ], q
#include <mach/mux.h>0 G: E( h) N) x# ]; q# B- |
, w6 A$ j; r) C- {  a9 B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- K' [1 A6 k7 q/ \0 M/ W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 H1 \; B3 Z1 O, {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- V: w- I1 D$ F+ r/ T+ m$ Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) |; A% |: z) o

: }5 D& f6 k7 o2 Q7 p0 m/* assign the tl som board LED-GPIOs*/
) Q- A7 ^( q+ B( i" T$ lstatic const short da850_evm_tl_user_led_pins[] = {
7 w6 @! i/ [3 c, L* L! f  B9 V        /* These pins are definition at <mach/mux.h> file */- F5 l( [, q, `2 A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 D: T/ }( F9 w5 d9 d: u        -1
( i( p2 c' ?, _' x, n  P" Q: V};
& ]- p9 R' J, e* k4 c7 M) X3 i# ]1 ?' O! M
static struct gpio_led da850_evm_tl_leds[] = {
5 \2 |) B) B' Q) G  Y! }6 u        {
) s% L! n. L1 H0 Y                .active_low = 0,  U, M! F# @6 I
                .gpio = DA850_USER_LED0,
6 Y- o* w7 R: A. j                .name = "user_led0",
7 O  k8 T% h* e8 O                .default_trigger = "default-on",
$ ]# F5 G& L# ^# J        },
1 l7 ^" l, q7 a6 H# a        {
! O' x0 U4 S" Y5 v* r' Q/ \                .active_low = 0,
7 g- j( T1 ?( G# F+ I                .gpio = DA850_USER_LED1,
; `& u! g3 D3 A9 f' T                .name = "user_led1",+ r8 C% I$ u/ W0 x: I  n
                .default_trigger = "default-on",
5 X( K# |9 l8 ?5 |        },
8 J- S+ D! D: z7 u  M        {
  _2 r- ~5 [6 n: L  I: m/ h2 [7 y% ^                .active_low = 0,
" h5 H9 z7 S& n! p3 t: H2 O# o                .gpio = DA850_USER_LED2,8 r' J  _- d7 Z- E
                .name = "user_led2",
5 L5 d7 B" T  f) E                .default_trigger = "default-on",3 G: B! B, S* ^6 Y, l7 p7 t' C
        },
; A8 W- P0 K* q) ]! d7 |/ Y, V' w/ T        {
5 L; w8 v6 M( ~! B                .active_low = 0,. G2 f4 y, I4 T- l
                .gpio = DA850_USER_LED3,
4 y- s5 |! e0 z) ?6 N8 B9 y                .name = "user_led3",
/ g: b7 c7 X; l" z; u& e0 O                .default_trigger = "default-on",
% }+ P$ J5 @0 W, [$ u8 b6 }7 x; d  V, b        },4 D. ]0 m8 C+ R% {3 q
};& C1 i1 C9 f/ u$ \: I0 R

8 V/ c2 A2 G, T" n& ~9 c6 Cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" V4 @2 S3 ^2 V: H+ |        .leds = da850_evm_tl_leds,1 G% g+ O. R9 }, {. k8 U. o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," b2 }# e1 m0 r7 d, F4 j
};- U% H, J( A$ ^) T! l' r4 H! n0 H

  c/ q, p+ b) }+ ~static void led_dev_release(struct device *dev)
" {- L; E3 t  y- o0 n% k: U3 m{7 ]" l8 w6 U& t# W
};
7 c" P  O3 X( E0 B) {4 g7 ^: r* y) a8 d
static struct platform_device da850_evm_tl_leds_device = {9 e% _1 D+ F& X7 p4 z5 I
        .name                = "leds-gpio",
1 ^$ G6 T: \* @8 k        .id                = 1,+ _/ I8 X' G% T' n3 r
        .dev = {
% F+ |. }! x2 e; j                .platform_data = &da850_evm_tl_leds_pdata,7 [- C7 l! T, [
                .release = led_dev_release,
& s5 f/ n; K! @- T        }. o1 E8 [! S$ Q
};
. s- T% q4 a1 j9 I, d- l6 h0 i/ _* r* U2 X. `& J/ _
static int __init led_platform_init(void)( G8 b, C3 f/ \- o. y4 w
{; Q3 K) k9 R8 v: T$ n8 w
        int ret;/ t3 e; w: ?; k1 P+ w
#if 0
' W6 I( g  J! F# c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& U7 W  ^( l9 e( A        if (ret)8 |. i9 f# k+ @3 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# }( O0 P; Q+ \9 j8 c: W3 f
                                "%d\n", ret);, v! z: F  ~6 H
#endif
3 Q5 F1 Z4 C0 a        ret = platform_device_register(&da850_evm_tl_leds_device);! T, b+ e& }+ r( r7 |' e9 @- _& Q
        if (ret)
' s$ v" J9 Q: C' K+ i, [                pr_warning("Could not register som GPIO expander LEDS");
$ {3 r5 m/ U7 h/ s        else
( B" L3 R- u! K* w# N                printk(KERN_INFO "LED register sucessful!\n");* U* r. V* U8 C* b8 f% }

/ Z$ C) }* `" T' |$ I1 k7 O        return ret;
, q: \0 ?/ Y( t, [}' r% V2 R8 ?; }' H) k

& N! |* M; q  p' W! ]/ T+ Fstatic void __exit led_platform_exit(void)
' K. ]0 P" j0 b: a0 o0 y{
- h( J1 P( {  |        platform_device_unregister(&da850_evm_tl_leds_device);- V/ \# p' ]* ]7 L3 M) J
3 B) ]5 ^- i7 e
        printk(KERN_INFO "LED unregister!\n");. P  r3 K3 u5 ?8 O
}& j/ V8 l3 z" S1 K
! {/ l7 F; }  E0 w& j# w8 Q
module_init(led_platform_init);( K, A  O( ^$ L6 Y
module_exit(led_platform_exit);) T9 R2 w5 U7 {+ P4 O) |7 G- X+ |

! A; ]! k* T1 a& J' F1 c, s( o5 n) _MODULE_DESCRIPTION("Led platform driver");
" ?9 s; L- f/ h) o5 T# J2 s7 W$ NMODULE_AUTHOR("Tronlong");- J7 K7 c1 I2 f5 @: l
MODULE_LICENSE("GPL");- A) G' D, ~2 M
' _1 y- c' A2 `5 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 17:27 , Processed in 0.040333 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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