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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 u2 [2 e3 s* S9 x+ ]; t9 f#include <linux/init.h>
/ _1 I) j1 S; J#include <linux/module.h>
" i7 p7 O6 {- J# L#include <linux/kernel.h>% o0 q1 [, W! ]4 q
#include <linux/types.h>
9 k; D& n1 @$ U" l9 {; D#include <linux/gpio.h>
7 O) _$ b  a) P0 B#include <linux/leds.h>1 B+ s8 c5 X+ c# q" ^4 u
#include <linux/platform_device.h>& T( D! C4 {5 i

: n9 }1 H, w7 @. F5 X3 V#include <asm/mach-types.h>
7 S& |1 R3 B+ E; e7 o2 K* S. ?; N#include <asm/mach/arch.h>
  c& P. C. }/ E#include <mach/da8xx.h>3 j) I4 D4 k7 [- T- ]# t
#include <mach/mux.h>' M% w1 g5 S- z
& r# \) U/ r( V/ w- p" x3 {3 o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 S& l3 L2 b4 b* O: v/ |7 }$ G, {% ^  T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- j0 h! m- E2 B. z' z$ F9 G* b2 w7 ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 S" o7 P& s) d- t2 t  k8 U1 b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% @$ K5 z3 g  I2 ]( _7 @- w3 P) ]
* O- U) R1 k* C# _4 x
/* assign the tl som board LED-GPIOs*/
9 Y) J, U: v# n' e6 ustatic const short da850_evm_tl_user_led_pins[] = {/ Q0 n4 {* \5 _" R4 Y' x2 v
        /* These pins are definition at <mach/mux.h> file */
( [2 Q0 z9 q& o# v& [$ D) n0 H$ u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  q" ]: }$ p; i( v0 ^
        -1) r- O9 ?; U, }* F6 }
};! H/ C: V8 X0 x' V' S, a
# U5 I+ N0 O5 t6 j" \
static struct gpio_led da850_evm_tl_leds[] = {- B) {4 g" I; h# W3 j" Q6 K
        {- ~& y: a6 S, j3 c
                .active_low = 0," I3 G; X) k6 F+ p0 }/ q
                .gpio = DA850_USER_LED0,+ p+ N8 l4 y& X6 a; ?7 g, r3 S$ j' |
                .name = "user_led0",/ U: @$ x0 e5 _+ n' m- j/ G
                .default_trigger = "default-on",$ g( j: q) J0 ^6 g# `) c. E
        },
" p+ M/ J$ u) K5 X$ k+ e2 ?        {. V( K4 T% U# R6 r7 g5 ^
                .active_low = 0,
0 h# o+ b$ g5 ]1 Z4 w% G. z                .gpio = DA850_USER_LED1,
4 i/ P1 ~2 |9 M6 d" ?                .name = "user_led1",3 @! k& ^4 w4 y8 x4 d
                .default_trigger = "default-on",
( k' A, r, N/ h8 ]        },) |$ V( m) N+ e, A
        {
( J4 ?& b+ i" w! d                .active_low = 0,
4 j  J6 N8 F6 E% e1 u                .gpio = DA850_USER_LED2,5 c& z* {0 J6 b6 i! ?- V/ V
                .name = "user_led2",1 w* p4 ^2 x# m* L/ b0 a" u' h' f
                .default_trigger = "default-on",
( t: A" w# J- }  X  c3 J( \        },1 d; m/ ^8 {) h! N+ ?
        {
/ e) H: O1 q9 U9 h' m! @                .active_low = 0,  W" n( ?& Q/ i
                .gpio = DA850_USER_LED3,
0 {- s7 Z  u* q! x4 G( @                .name = "user_led3",
! c$ L, l0 t# U                .default_trigger = "default-on",& G/ c; `! p, z. _9 e; G. `: a
        },/ B4 |4 V: Z  U/ u: L
};
! G, X6 d4 O/ @$ U2 e
: o* l4 m/ F) W* ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: x; b- |6 }$ y7 @" S0 V6 B        .leds = da850_evm_tl_leds,: C+ Q9 v; s  P% E# T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- W: Z- S( F! U" t};2 b, C/ s7 q% l8 n4 j: M  `3 }
; X# T8 k' w" a9 J" [4 |$ t' p% ^
static void led_dev_release(struct device *dev)) v) k5 i/ s) v# i
{
# ?8 S- O9 x% \};6 u, y' g) R& b- q/ X0 }

9 B4 u' j3 t9 z% |) estatic struct platform_device da850_evm_tl_leds_device = {
0 p: v8 p! N6 h( ]# u; I2 v        .name                = "leds-gpio",# t: Z$ n) x6 C$ m. }3 L, c. o2 z
        .id                = 1,/ j" K" s/ v2 A4 @
        .dev = {; a/ S4 k7 z* U" r3 k
                .platform_data = &da850_evm_tl_leds_pdata,
  P" L% J% J2 X                .release = led_dev_release,
6 j8 r# \* y/ c! X        }6 [- C  h# v% M  V4 E6 y6 w- ?+ b: O, r
};5 F; v" g" U0 \% v
9 r8 I  e5 u% r* V& N, L) Y
static int __init led_platform_init(void)
6 B# R. B* a; P8 ?2 h{
0 Y) ]: t4 g$ z3 `9 \" N        int ret;& R& \/ c- z# t& O( q4 T. |' A* `
#if 0
7 ~) \* ~; t+ W7 d+ Q9 n( O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: J- n! i9 T9 \
        if (ret)
8 s$ M; h9 z9 V# J7 v5 o7 i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) G" }9 ^  _* y; K; Z" ?- c  Q                                "%d\n", ret);& \$ s0 V, C. w; j2 B' F
#endif, D+ i( S" v# k* ?! t1 Q- Z9 T
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 ?! P* |' a# |4 O0 t        if (ret)  i3 l% F; M8 E( m/ _6 t
                pr_warning("Could not register som GPIO expander LEDS");
" O' O7 i2 K* l# m" U/ z/ F        else$ {) n' B9 ^) L6 Q" }; C) t
                printk(KERN_INFO "LED register sucessful!\n");4 z' _# A  q  z

/ Q: [8 I  H  M+ E3 H0 {2 h        return ret;- A1 B8 u$ [8 Q1 h
}
8 ^# m7 z4 p9 T8 L
6 B5 e6 a; }8 n$ V( }9 s/ }9 Istatic void __exit led_platform_exit(void)- D; L6 @) \1 M" m/ L9 ~
{  L+ ]; s5 \! g% V: O$ y  B
        platform_device_unregister(&da850_evm_tl_leds_device);
8 Q, C( s, G! Z3 @! V
+ h8 M1 X8 v& D9 S! r        printk(KERN_INFO "LED unregister!\n");8 ?7 |( M8 b; o7 A9 }" ]" S
}
5 Y& Z3 I6 n0 k2 @' G2 N# O. [. y9 G6 q( S# _: p
module_init(led_platform_init);
8 g' ~+ d- f8 P- u. E; Zmodule_exit(led_platform_exit);
! u2 n1 K! o7 H& B/ r
7 C+ }; b  }. A9 T1 ~+ FMODULE_DESCRIPTION("Led platform driver");
. P( h+ l  @8 A  UMODULE_AUTHOR("Tronlong");
& p" }# l- ~/ }MODULE_LICENSE("GPL");
+ g& f  L/ }: {4 ^- U6 [0 @/ }7 C  P) r7 A% A& J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 06:26 , Processed in 0.043129 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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