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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 h/ q) H/ {  z( Z1 `% [
#include <linux/init.h>
* p" o' y; x( B. K1 E! [#include <linux/module.h>
( a+ z  Q8 u$ q1 B. x  _$ u#include <linux/kernel.h>* {( {7 V3 D# B1 u( T/ u
#include <linux/types.h>$ h, [( n, |" B/ D/ [
#include <linux/gpio.h>$ {* y" B1 L; B! D7 @
#include <linux/leds.h>
" L; ]; L6 g/ X( ?% w( ]1 m3 x2 h#include <linux/platform_device.h>
: @- Y/ _" r! E) A  P* B) b4 u6 k1 x8 X$ A) `# ?
#include <asm/mach-types.h>
6 D# ^5 i7 i  d4 [8 c2 g#include <asm/mach/arch.h>
2 z7 h* I9 K5 p  r#include <mach/da8xx.h>' i: c8 r0 S! m0 y
#include <mach/mux.h>
+ x4 o0 o: |7 Q! k) D5 O' D+ {# H. h$ X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ @( V4 T8 b, o8 c' \* D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& |: S6 C/ ?+ C; J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ {2 D) ]( a7 }% @7 d6 v, _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 x6 A) K8 s: H, @
, C6 t# ?1 p$ M6 }1 h$ G9 Z0 _; X
/* assign the tl som board LED-GPIOs*/
, j" _* ]* c/ dstatic const short da850_evm_tl_user_led_pins[] = {% Q1 X" B  M1 L% G  m/ d; y2 F
        /* These pins are definition at <mach/mux.h> file */, \1 i. Z, N& p0 x7 c4 K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, n! {  K+ a0 |5 |; n, I# j        -1
& b6 A# x; `; @1 R# I' `: G/ D3 P};
9 _1 \$ Z# f- k8 y2 D- F2 l: L
1 C  w! u7 q; I  h: ystatic struct gpio_led da850_evm_tl_leds[] = {
, r9 Y7 i) C1 {$ T! C. `1 y, L1 G        {: T4 ?( d6 k- ^. p# t: I- o* W& T
                .active_low = 0,
, i* M$ B- j5 T3 h: x* ?* }# j" s                .gpio = DA850_USER_LED0,1 J. g2 ^4 i: g) L+ {
                .name = "user_led0",( n* s7 F4 o6 _6 e% [1 W) h: w
                .default_trigger = "default-on",7 M$ a* D! J% `! A% K
        },
8 ~9 |8 y6 _+ `6 b        {
, [% i0 Z! D/ E! X0 S                .active_low = 0,$ z% ]! @$ j2 a! I0 V% K
                .gpio = DA850_USER_LED1,
8 T6 t# ?9 u% n6 }& C, k                .name = "user_led1",8 _  A, R5 q8 O5 P3 Q$ h
                .default_trigger = "default-on",
# s/ s6 a1 ?% ]/ R        },  q1 Y: F) c" _- ?. m
        {' ~& \+ u& |3 z9 [" ]) M
                .active_low = 0,
" |( \( u. e% B6 i# w, i( t- @                .gpio = DA850_USER_LED2,
/ h5 @0 D% i: S0 b                .name = "user_led2",
) t) Q5 f8 g5 g% g* g8 @                .default_trigger = "default-on",6 O- i: f5 ?* y; M
        },
' v' F9 h: }# q, B        {- I! I9 n+ O, w% H
                .active_low = 0,
3 N1 R4 B) C: G4 L0 Y* m                .gpio = DA850_USER_LED3,
* ~) C5 }  a0 Z                .name = "user_led3",
4 @5 L$ c! u3 v# y7 ^. m1 I, r                .default_trigger = "default-on",
. Q: u5 e$ N, @        },
- L- k# c; f8 S, n6 E* t$ F};) S' R8 V& V& b6 n1 d& S
6 x: [# D9 a. L& T4 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 q- T3 v: ^2 Z/ R
        .leds = da850_evm_tl_leds,
0 W9 q1 B; W* O4 k: k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 v$ `$ b' y( y2 j* g+ a% w};
" G  T  w8 E! T3 f1 i: O' O* q  {0 n+ W
static void led_dev_release(struct device *dev)
' F' n% F: y* p, P6 t- V- c$ W/ G{
" o# M. ]# Z/ b4 t- a3 H};/ l( Y! {+ g) V% Q! d+ I# F
' z! l6 A) I. a; J- H, Y# T
static struct platform_device da850_evm_tl_leds_device = {
# y& w* u- S8 U        .name                = "leds-gpio",  r( s) a" x: |6 o/ |) n
        .id                = 1,0 W: d2 D) s* F0 ]0 j
        .dev = {4 B" D7 m+ Q8 x8 q9 ]! }2 F: A* R
                .platform_data = &da850_evm_tl_leds_pdata,
, J. f/ E, \, k- a( Q                .release = led_dev_release,6 r3 \  R2 a, s9 A, l" _( @
        }
  M0 ~  y0 H0 T+ }5 l7 x};
3 ~  B! U$ v$ B% K' J
$ Q" T0 f6 o5 R4 O5 p  @( q6 Lstatic int __init led_platform_init(void)
# t, L, g# a) {% a0 q{- z. k& }4 s8 u4 W+ Q+ I
        int ret;
. W' Y7 X. T7 Y6 y( [; U( R#if 0. Q( ~1 C/ Z" {# i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 z- D4 H5 |; z: T3 y0 u/ W, w; ], t
        if (ret)
, Q# f& u! u, o. v7 t+ e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; ?7 {  }# a! f9 m( X
                                "%d\n", ret);
% Q7 d$ H4 ^* y$ ?#endif
9 D$ r5 t& i& D        ret = platform_device_register(&da850_evm_tl_leds_device);
( S- V1 r# p1 k) g! H, S- g! X        if (ret)
9 D, _7 a/ [, ^, A$ {                pr_warning("Could not register som GPIO expander LEDS");
6 D& x" P, `" r1 c        else
$ q' ~/ b% W- H                printk(KERN_INFO "LED register sucessful!\n");
: D! }" b3 v* o$ n* m$ p( K9 ]* D2 u+ O' Q8 i2 P+ ~
        return ret;
) k# t; ~0 }6 F}
* x0 n" i7 f7 B
' b, m" v$ n1 U. H! ~6 p: Kstatic void __exit led_platform_exit(void). d! y+ Z% d' y8 N7 ~% ~
{
2 d7 J+ e8 C  T! s* T# S  I8 s        platform_device_unregister(&da850_evm_tl_leds_device);  W" A7 ?: @2 O8 z1 b8 s

: @3 F% S* [4 B        printk(KERN_INFO "LED unregister!\n");
% m+ g5 s2 d  H7 L# p9 u2 c, \}
2 T) o) x6 x( L: D3 [& ~4 b9 T$ E; n8 ?  w" e4 X) }$ d
module_init(led_platform_init);
$ n0 R1 [5 A8 @# Z4 m8 Xmodule_exit(led_platform_exit);
+ L; j/ ^9 I  q* @; S& Y: S  U( `- [8 Q9 |, ~. p; n& Z( S+ `
MODULE_DESCRIPTION("Led platform driver");# S. `. O, R; ^( D
MODULE_AUTHOR("Tronlong");) O8 c! B1 h: f- L& N" L2 B
MODULE_LICENSE("GPL");5 j" I% h% n: @2 |
: w# @9 b. }' _7 G2 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-5 19:22 , Processed in 0.040254 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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