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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 p9 ?" X+ w5 g: E1 n: c2 |#include <linux/init.h>
2 T7 I: N; M+ o' M#include <linux/module.h>' i7 p6 a! K# k4 ]( B' a
#include <linux/kernel.h>) u- T% B7 g* W- @6 _. q
#include <linux/types.h>1 ?' m. l3 x* u/ T
#include <linux/gpio.h>
: @8 n9 P& s( t, k: e% N$ @#include <linux/leds.h># v7 Z2 B2 B- d! T0 i
#include <linux/platform_device.h>
; |8 s0 y! C) T! {" C. P9 c& a: V& R7 b# W- o
#include <asm/mach-types.h>
' [' g! g3 L7 F$ v- \9 i#include <asm/mach/arch.h>
" @6 _* ~; |# @4 [0 g% e$ L' V#include <mach/da8xx.h>
4 f/ |% ]% U5 |3 ~! Z/ p#include <mach/mux.h>
! B: D! z7 X! ?) c3 k1 B. i8 n1 t" W# ~% O6 B% ^7 T# v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" ^' n. ~3 {  T7 T  o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 {% ?7 [- b% o* g9 g- v1 |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. m* k5 `- ^4 Z/ b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). q; m: C1 j3 r5 A; S' h

. z* E, A! T; H3 {/* assign the tl som board LED-GPIOs*/
1 H8 F! }1 b  i4 L) r: gstatic const short da850_evm_tl_user_led_pins[] = {
$ Z  ]* h1 C2 m2 g        /* These pins are definition at <mach/mux.h> file */
' t2 k9 I/ r( k- {/ G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- u, e7 m$ V2 V. O/ q2 O3 \" N6 y
        -17 J! s3 q2 q$ k6 G/ g
};- D: x$ E, r4 }4 H
4 b9 e- I8 K1 z7 {. l) X; d
static struct gpio_led da850_evm_tl_leds[] = {
1 e) Y/ X$ v. o# O        {
; c  G6 g" X# g; X3 ~8 Y                .active_low = 0,7 p$ a" M* i" y+ Z8 J+ z
                .gpio = DA850_USER_LED0,9 v6 g0 O! V. x. p) E+ W" f$ }* `
                .name = "user_led0",
' v; I) ?8 g9 h2 o- F) b- e! [                .default_trigger = "default-on",: Z2 x/ f9 Y9 C( H( O3 ~
        },
+ a7 X( W7 T/ O0 o* c. q        {
1 i6 k. ]( O* _( H! ]0 ~6 i                .active_low = 0,
4 D# U2 w" m+ N                .gpio = DA850_USER_LED1,
1 i4 \) D" V/ n* ^% z& r+ _                .name = "user_led1",6 m3 W; a) \/ ^+ ~
                .default_trigger = "default-on",$ p) `+ ?9 S( l
        },
# \' }4 x, d/ }3 w8 ?        {1 T1 `2 ?) o% j3 r/ {7 l7 C
                .active_low = 0," o5 h; F% B9 R* o/ M
                .gpio = DA850_USER_LED2,
  h) h* t4 ^: z+ g% V: _3 Z                .name = "user_led2",: V8 c+ m/ v- x5 l, r' n
                .default_trigger = "default-on",
% b; S. ^. h5 b3 a        },* O8 @8 G( u6 w; Z- c4 T
        {  J3 i# `9 ]" q$ P6 I
                .active_low = 0,
+ Y: U, b0 m( s" I  {% E5 _6 O5 I! o0 w                .gpio = DA850_USER_LED3,
8 @0 w/ V' b: M2 M9 Q7 e                .name = "user_led3",
# e- d" [* a! N                .default_trigger = "default-on",6 M& a; K( F* L4 R- q- S
        },3 h  e+ J% G' u
};
  J9 Q" `, u' t! |$ u" Z, f% A4 r$ T1 m* ~+ P( O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! E! @4 F/ b8 u9 v
        .leds = da850_evm_tl_leds,: _; H% i9 P  z1 p1 J8 A% h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 j- s7 g$ w$ k; R4 A};
5 }, q# ?/ y' J4 a: C" I: k
8 R+ [1 |* y1 Vstatic void led_dev_release(struct device *dev)
: x* y# W1 Z& s- |! `6 H& m8 v7 x{
7 J5 ]2 N- ~; e};7 r6 W4 v3 `" _- x$ _6 U0 Q
/ G( @/ w0 s  t7 [. Q9 K3 v
static struct platform_device da850_evm_tl_leds_device = {6 p' H" L( @! n' M. _
        .name                = "leds-gpio",  L+ ?+ C5 H$ d
        .id                = 1,$ i% q6 F- [$ q, N, f7 {2 e
        .dev = {  h# a* s8 o' J3 G( Z
                .platform_data = &da850_evm_tl_leds_pdata,2 W3 e% m! R) S; g8 J6 U" g% v3 E; z
                .release = led_dev_release,, K4 ~# }* F; A7 J" c3 I7 P
        }; l1 W: s1 R: S
};( h- K6 v2 e0 [! W, O# S
! y& R7 D; N/ M# i7 s
static int __init led_platform_init(void)* }( i8 \, J8 k4 \# d9 o
{* y9 N1 G4 Y  |9 J* a! C. t
        int ret;+ ~) s. E0 a- y. j# s5 {
#if 0$ \) t, W4 K8 j" Y: {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 ~# a' {0 w3 G: F7 p% }        if (ret)/ a7 E9 q( [0 |" Y1 j( c
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") W5 W* j' ]  S  O. g6 k
                                "%d\n", ret);
' M6 B& {. H# u" ^; U#endif
  h" k! F, T! o7 A; k* @6 Z        ret = platform_device_register(&da850_evm_tl_leds_device);
% |+ `; g2 ]. `" v* Y( m7 a2 }1 N) M        if (ret)- b( r% l7 T' U8 |2 A
                pr_warning("Could not register som GPIO expander LEDS");* B4 T0 Y- W  |9 T% v: [% I
        else+ X  j+ z' b8 e( I
                printk(KERN_INFO "LED register sucessful!\n");- `- q' L. s. W- I+ N' g) q
1 v2 t- X/ K3 i) `' {. b" R: |9 G
        return ret;0 Q3 ?2 L7 y$ e! _5 O: n" w
}
; _- w4 g; U( G% K/ _% W9 C: A7 u; U! [( \) c2 s* _
static void __exit led_platform_exit(void)
2 J' v- A& G0 F{
7 d) g( e* e6 ?2 m+ q        platform_device_unregister(&da850_evm_tl_leds_device);" I0 ]0 G1 m) L+ s: w1 u
7 X7 e( L, n) @1 X3 o+ t
        printk(KERN_INFO "LED unregister!\n");/ m; d! j" C* S6 f, j% R
}
! _: b2 D( L8 N# p4 F7 J3 A& x0 E+ q/ E* d, v/ b& e; v
module_init(led_platform_init);
9 O. `$ d8 n$ I$ F7 @1 Jmodule_exit(led_platform_exit);
: v/ m4 Y/ u- I( W- o$ d: O4 V/ G0 Z5 W. J4 q
MODULE_DESCRIPTION("Led platform driver");
9 S* _" ?3 D) XMODULE_AUTHOR("Tronlong");$ d( e- b, L/ w: _/ K! t: ]
MODULE_LICENSE("GPL");7 ]/ ?  C+ ]# b$ S! S3 f

9 m, g: V! d9 s% L/ F4 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-19 22:41 , Processed in 0.041356 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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