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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ ?7 `5 j5 M! Z#include <linux/init.h>
0 h, B: n' J9 B! E#include <linux/module.h>
$ D( C# O1 k/ \6 |#include <linux/kernel.h>
0 w/ J3 T3 B8 d7 z0 `#include <linux/types.h>: ]2 B& B  D% s+ n9 J( W' s3 _
#include <linux/gpio.h>* X6 [) p, a2 N! n  G
#include <linux/leds.h>
9 R7 X" {& |2 T6 Z) a#include <linux/platform_device.h>3 a" F  Y9 ]" a6 |, {8 Z
- p! I8 D" D1 K
#include <asm/mach-types.h>* l. J8 [; @' w" \. O
#include <asm/mach/arch.h>
6 s! \7 n5 ^  D& E' U#include <mach/da8xx.h>  i* Y  k: b) d+ t' {8 R/ b' _0 Q
#include <mach/mux.h>
( z, _$ Y5 q1 H. b3 O: X, D, E% ?( ]4 t1 a, z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 T# G1 [$ c$ A* S  F& I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 F1 p* t( ~4 l2 p4 w" U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# A6 {( R! O: q6 Q' x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 f# N2 l# i5 X# e  c7 V6 `3 W# g3 n" C3 ^
/* assign the tl som board LED-GPIOs*/5 Z( k, ~/ h! b7 ?! t7 g
static const short da850_evm_tl_user_led_pins[] = {& H& j  ?, P' k6 Q4 ^: ]" C9 i
        /* These pins are definition at <mach/mux.h> file */4 s# |! I) c8 Z& w7 x# j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 o2 _& U8 o1 N
        -1" P0 P. E. \# ~- W  m$ V
};9 _" G  Y+ T3 F

# R7 Y& F# F- R# ~5 q1 c/ }static struct gpio_led da850_evm_tl_leds[] = {
$ [% L, P- S8 T  c; X8 e        {
% c$ s+ f- w( ^6 `5 e                .active_low = 0,
& W" @0 u& P) i) N/ D& V                .gpio = DA850_USER_LED0,( U5 |! s2 e. ~& W) v0 J
                .name = "user_led0",
$ G3 j* j, _0 P0 c+ i                .default_trigger = "default-on",7 \# W* [/ Y- \; \2 t9 n
        },
2 R) J$ X$ A. @* f. Q        {
* O- e2 q6 @2 X                .active_low = 0,! a1 w0 `, H) p( c. D
                .gpio = DA850_USER_LED1,# {  v3 z. e6 }8 C% [
                .name = "user_led1",7 D: h7 G: `7 G; J) J( H2 j
                .default_trigger = "default-on",
8 |0 r; c! }* G        },- N2 v/ ^3 [- |9 k% Z, Q! u7 o
        {  c$ h4 t. c& P1 z8 M' w! c
                .active_low = 0,
4 g) z  ?$ G9 ?+ P& E! ]% H                .gpio = DA850_USER_LED2,
1 @- a/ s5 s; \4 ~  _7 `/ x5 e                .name = "user_led2",( p- H* k' u0 M3 v
                .default_trigger = "default-on",! e- f6 Y1 y/ u9 a$ R2 e
        },
& l& h: A! m) }# E7 W8 F        {
1 }' x7 C1 v4 }+ d                .active_low = 0,4 _3 z' ]: F  u! n2 [" D1 G
                .gpio = DA850_USER_LED3,
# g6 |( z; W7 K7 c( y( D4 F                .name = "user_led3",
: ^* Y3 `6 _% S                .default_trigger = "default-on",! @: T. l9 L' {5 {4 s- a
        },
3 V( }- K% W' t- C9 o};3 Y3 E/ @4 @/ F% ]6 \! E4 I' V
2 `  \6 H" F3 _# v* {4 Q: j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 T* W3 N+ A  s
        .leds = da850_evm_tl_leds,
, [  n' X# @& Z5 W  V# d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! g% b2 Q6 [# S# n# Y! z};
* u/ o5 ^" O5 t& J! j4 e0 n5 V" U8 c( ^3 q' T+ X; Q: d% l6 Q
static void led_dev_release(struct device *dev)
- b- S6 G' ~) O2 l' G; B: [{1 \# K3 b# f2 m2 q% ~  M  o
};
& _* U( l0 ?2 Q- M$ P. X* U7 |- y) K" j* F- }$ C
static struct platform_device da850_evm_tl_leds_device = {
5 y! `$ I" \0 O; I        .name                = "leds-gpio",
/ c2 }) ]4 w. Q& t- R+ E, d9 J  z        .id                = 1,& l0 \- g! {8 p0 U
        .dev = {2 C- p: m  k# b1 Y4 O
                .platform_data = &da850_evm_tl_leds_pdata,6 o7 P9 E  I* P" U- D! p, |
                .release = led_dev_release,
: C, `6 I# w6 y9 O8 R( t8 F' l        }
  q+ G- _9 D8 O" j! V! @% S7 T5 @) Z};
4 M. b8 Q0 D: G, Y5 s
# _# {+ a4 k% ?) J0 w& {static int __init led_platform_init(void)
, U: I8 ?, l8 y' ^2 f# b( S) m& B# [{7 j2 m, k+ U5 r+ E0 H" a
        int ret;5 B8 D5 T- l& ^% }4 x8 m. V
#if 0
( e/ a' ]  Z: y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ T# v% C: N8 U7 M4 ^        if (ret)8 r+ S' e2 w7 E+ `1 P; a; p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 k0 L4 m8 C: o4 \                                "%d\n", ret);, j0 R& h  b; c# ?5 G& e' I
#endif
8 ]! E6 i% y- e$ Y9 S# {* j* H        ret = platform_device_register(&da850_evm_tl_leds_device);
2 _" A- Z! j+ N4 m" ~2 V* Z        if (ret)- m$ H) H8 H! s* [
                pr_warning("Could not register som GPIO expander LEDS");
/ H: w; t' X0 H6 J' q+ N2 p  s        else  o; F- P8 d& }( ]& K* z- `% C2 s
                printk(KERN_INFO "LED register sucessful!\n");
, O( ]  u6 W  j& v" k: D- I  u0 W% G4 `' |: k, Y. v3 I
        return ret;- o- d  `, n6 ~6 O
}& S. L3 k* c# @- X6 O; \

9 W) O; G0 L. @7 Nstatic void __exit led_platform_exit(void)
# N6 Z$ w- H' D; m0 P: r{1 e4 |8 _1 N; p7 Z2 l
        platform_device_unregister(&da850_evm_tl_leds_device);
6 A  o5 M# M) u2 ?( U/ c: J4 |: W7 C/ d( d5 {7 r) m/ n3 ]
        printk(KERN_INFO "LED unregister!\n");& Y  q/ H; S" x' P
}- m  Y9 F" e! S1 j" ~. s0 w+ e
( V% J) M0 B; K2 ?6 M, _5 L
module_init(led_platform_init);+ G2 c" D1 m" P( {
module_exit(led_platform_exit);- d4 I! ~' H- c2 z6 s8 M! S. [
. U6 a. `/ K9 F
MODULE_DESCRIPTION("Led platform driver");$ |5 J7 ^: j, q& B. G5 [) n6 ?0 a, c
MODULE_AUTHOR("Tronlong");% q# W8 c6 R* y* b4 P
MODULE_LICENSE("GPL");" ?+ P' U5 M- D" d" c' q

: ?) d' A7 W9 C# q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-19 10:18 , Processed in 0.039284 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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