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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 N8 O  ]6 o8 _5 ]; r8 h
#include <linux/init.h>
* h4 L% U) {5 V#include <linux/module.h>" N. H0 @# C; n- H+ [$ x* o3 v  J
#include <linux/kernel.h>. F9 O% u/ ]. D0 Y
#include <linux/types.h>
1 t- h' y. Z- R: K! l#include <linux/gpio.h>
+ ]" j5 Z: Q& ?; [. t+ H#include <linux/leds.h>9 a+ l; _. N, ?0 [; p8 ]
#include <linux/platform_device.h>% W" t: S, g+ `' `2 z/ z
7 _- Q  W- v5 f6 g
#include <asm/mach-types.h>: p, |6 l* W6 `" F6 q. j3 ~  `+ K
#include <asm/mach/arch.h>, J/ w& h4 l( t
#include <mach/da8xx.h>
# s! J; c* q5 D1 k) A#include <mach/mux.h>
2 \  H: o1 ?% Y. d& u6 J6 [7 i, u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% z' r( V* B% s0 j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( I3 }9 ~; k/ ?# M. f" t$ A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 w) X; O' o5 |$ V  W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( C0 l) I1 q/ `- [% ~7 ?
8 S' Y  J% h* {, \" D0 n
/* assign the tl som board LED-GPIOs*/! _+ _7 g& b) w) x3 h3 Z
static const short da850_evm_tl_user_led_pins[] = {8 Y2 J+ r7 w) D0 W
        /* These pins are definition at <mach/mux.h> file */7 g( o' z0 p9 j7 W: {/ g1 J) o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% E% V. A! K4 t8 s" e' e7 O! V, [
        -1
( e  N4 `4 C" w# {4 |* G};" I7 y+ _0 d/ h8 {/ j' ?2 o; r
& @& y; _" g0 I, {
static struct gpio_led da850_evm_tl_leds[] = {
, z3 G& x% L5 c) j. z5 i        {6 c3 Z8 H( \% o7 M6 f& q
                .active_low = 0,
" O8 m* e! H) H/ M                .gpio = DA850_USER_LED0,
& F. R! {6 `4 w) d2 P/ d1 O& `                .name = "user_led0",
% \. d( K3 h  `+ ~8 i2 ]% M                .default_trigger = "default-on",2 M  y4 g( p4 b' o- x
        },3 j0 ^6 ^% s% x" Z$ M9 _$ b
        {7 r8 A! n4 w( o
                .active_low = 0,
% g$ J% }. p5 H! I) I3 _' d                .gpio = DA850_USER_LED1,0 B1 A7 f* ~8 J7 e/ h
                .name = "user_led1",/ K) t# M3 D- ^7 N& g- _: o5 P
                .default_trigger = "default-on",
( q4 m6 q+ `; X+ S) G( `5 ]: U        },( V( K( e' g, R% |+ A$ p
        {+ x1 m7 X& Z; I, X- y1 n! V
                .active_low = 0,
, Q7 q, v) R9 k* [8 P                .gpio = DA850_USER_LED2,* ?+ [" O' P3 w# D( d7 W+ G' K
                .name = "user_led2",
% P7 Z7 k, {0 B, ]" s/ A4 k                .default_trigger = "default-on",
' j0 C8 D" x1 E' O        },
5 I8 y4 L+ _% I, {. v, O* @        {
. M( h+ j! P5 Q                .active_low = 0," Y( q, h' y: X5 ?
                .gpio = DA850_USER_LED3,8 ?% k5 R+ }7 t
                .name = "user_led3",, |5 k' \" W  \2 e9 j0 O) W
                .default_trigger = "default-on",/ R  k4 f) }+ O6 k1 @
        },9 k& R- ~6 L; m0 }0 w8 X
};
* ?9 v/ q" r4 W1 H& b" e. Y2 G. L- Q% T8 I7 |, s' h* [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  A" ]5 ?* }7 A' K, A
        .leds = da850_evm_tl_leds,* M% p" l: P/ z2 @" j5 Q' b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ L) a5 ~4 n  @& ~3 Q) P" G
};' Z/ ^4 A- l* @9 P% D1 F5 p, j  R

/ m" n, \$ r5 f, R/ Z2 sstatic void led_dev_release(struct device *dev)( B$ t6 R3 q2 T
{
5 H. t8 B9 Q& j};
8 _; f; `7 I3 q$ {
* y1 E" P) I8 C& a0 F5 _: Vstatic struct platform_device da850_evm_tl_leds_device = {
% a9 O6 h: K' z        .name                = "leds-gpio",0 B9 T* j/ q- R, @
        .id                = 1,4 I. x% n9 G5 R8 ^
        .dev = {
7 C; }2 M% k4 d1 z2 l                .platform_data = &da850_evm_tl_leds_pdata," h4 s3 i8 ^0 d
                .release = led_dev_release,
# i, T. Q4 Y' p/ T        }( @* o, y$ u  c" f
};
' e: G# _3 M. r% t; {
4 f/ ]; c2 I( L7 y1 ^static int __init led_platform_init(void)  j! Z! [0 p1 u- z- I$ E) v
{
* [% V. _9 t+ Z5 r% ?        int ret;
& B6 D5 E4 F# ]; S/ A#if 0# a9 S) k3 E9 M( e. G( c" G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, ?7 Z/ J, I# F; e, j! g
        if (ret)
- R- C  \# R8 ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! k6 U2 g+ r% @# _" D                                "%d\n", ret);% i; V$ r- q- B3 k, |
#endif5 l5 }6 f( I- t* l- z' Q, u# B& m; ]
        ret = platform_device_register(&da850_evm_tl_leds_device);" x# J$ t- ?) {/ x/ ?& \6 U" N
        if (ret)
) v% {- z& q% E8 ?  z; m                pr_warning("Could not register som GPIO expander LEDS");
0 i. G* U# T8 Q: Z: u        else* }* t2 H2 |0 y0 b0 s- b: h& h% R
                printk(KERN_INFO "LED register sucessful!\n");4 N2 u' e$ D! G' S

( Q7 k& T$ F" k& X        return ret;2 j; [" Z% n3 k. D- R
}  D9 A! X4 ?. U- S  [9 b
' n, O1 n' U/ c0 U
static void __exit led_platform_exit(void)
+ S5 A* ]  }( M& P" ~& d' Z( Z{$ ]1 B! P) T" Y" p& U3 p
        platform_device_unregister(&da850_evm_tl_leds_device);" {0 K2 ]$ C2 ^$ ^! ?  S

( q' ~$ {3 q) {, R        printk(KERN_INFO "LED unregister!\n");4 P. a3 |* s2 T" Z! C1 ?1 a' P
}
1 x. o8 T3 @! D4 |7 T1 d% Z. Q6 Y: g7 ?6 v0 E+ U0 C8 O3 r" d
module_init(led_platform_init);
9 W/ e7 l. H! gmodule_exit(led_platform_exit);2 P9 O/ I3 d+ Z

* K+ q% Q- `: |3 i% NMODULE_DESCRIPTION("Led platform driver");
* E3 ?6 ]4 a& w7 m1 m* C5 I" g# g1 F5 EMODULE_AUTHOR("Tronlong");
( D! [/ O; M: v" F  q. eMODULE_LICENSE("GPL");2 J- @7 r" M8 J1 l  \/ ~

  ^2 i' M$ Y: r4 G4 j* n# X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 13:18 , Processed in 0.039671 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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