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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* U, Z5 \0 \# Z- m/ P! Q$ O
#include <linux/init.h>
4 Q) l/ ~( v6 i2 O) O. T0 A#include <linux/module.h>" i9 p! d+ r9 ^# i$ t: h, t2 l
#include <linux/kernel.h>
1 y. A7 E2 N  L" ^( D4 x8 @6 e  o% A#include <linux/types.h>
" [5 q. @1 `! q4 X* Q8 ~#include <linux/gpio.h>! R& v$ ?' R; D3 g
#include <linux/leds.h>
  V$ m+ N1 j% G+ w, Y8 z#include <linux/platform_device.h>
, q5 u# m0 V3 i4 ?  E! B  d) H1 z% e8 \  ?+ F1 W
#include <asm/mach-types.h>; G2 H7 g" X4 `
#include <asm/mach/arch.h>" H% l4 e4 ]( k2 T
#include <mach/da8xx.h>
, k7 c6 o7 c; K: L8 t#include <mach/mux.h>6 p2 K4 ]. @6 S" u) s5 G; `
: W) W- v5 \/ t# w, k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 T- c5 c' `# e' f* h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 d9 u6 o: K6 a& h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# Z. t4 a! \$ o  z6 b0 U6 G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), P2 [9 [2 V( y' g& B
, B' S# P/ S' j! }/ q9 b7 G
/* assign the tl som board LED-GPIOs*/5 s# w2 I! |& o" r+ |- d
static const short da850_evm_tl_user_led_pins[] = {
* l2 C* Y. v! s8 t! _( D6 d        /* These pins are definition at <mach/mux.h> file */9 o& K; N6 {; x: G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ t+ y3 N4 \0 j# S3 y( w
        -1
, o  ]7 l; f+ }# {3 o: k; L};
& b% R8 c7 Y! A- U6 K- z- q. T% L6 g' k$ o
static struct gpio_led da850_evm_tl_leds[] = {7 U. i. |; |8 V# W- a* t' a
        {
3 ~1 f" \0 S9 L, k5 q, G                .active_low = 0,
) d9 E" |; y7 w5 }# }) n% t- c4 X! r                .gpio = DA850_USER_LED0,5 O( h4 L6 K1 p& R
                .name = "user_led0",0 L% y4 W0 n7 S/ [" L2 n! Y
                .default_trigger = "default-on",- N* H# p% s2 J1 C3 R& q
        },$ g$ a4 c2 e& L1 C7 p9 r
        {) s$ y( ?1 [( y& T  D! \! @
                .active_low = 0,
- A5 [: D& `3 s6 o                .gpio = DA850_USER_LED1,
( M; K  u" g% E! ^, E5 W; v                .name = "user_led1"," y- S, Z3 m2 U* R4 r3 n
                .default_trigger = "default-on",
* ^. Y, s/ K3 D; o( b2 \        },
" `& ?+ q! z% ?        {: M; |9 @6 K- D, o
                .active_low = 0,9 E9 Y; Q- {& K$ o. T, E
                .gpio = DA850_USER_LED2,
; N4 i* r% ~3 b% [                .name = "user_led2",: o, m9 `6 v% N7 v3 ?8 V
                .default_trigger = "default-on",
$ t6 h2 V" W  Y. Y$ M/ r        },
1 |+ G( x" K' R9 H$ t        {
8 T1 V" Q0 Y/ {6 G& w+ J# e+ @2 f                .active_low = 0,
5 X0 G. s+ _/ B                .gpio = DA850_USER_LED3,4 v) u$ T+ X- H6 q/ V; l
                .name = "user_led3",3 X3 b/ Y+ r" A+ y8 F/ h& X
                .default_trigger = "default-on",2 A& q/ N) [  Z3 k/ ~
        },1 ]2 v  B- w9 U4 t
};
. R5 Z/ N, d$ u
( h" b" r# E; }3 K, ~) fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, i, e: T, P  m) g4 M  C# y# R        .leds = da850_evm_tl_leds,
" E4 O6 ^5 X" ]# H' {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. i% u0 s8 ~% q8 B2 A' V) ?};
) C7 `6 |$ h0 L  v' U5 ^+ V! K3 w( c) O; \0 A5 v; @' G
static void led_dev_release(struct device *dev)
# \' n4 e2 ?0 f* _9 W' o6 X$ t{6 Q7 ~6 E5 W$ {
};
5 [9 s$ e; {( Z  w8 w2 f# S  x0 H# D1 ~- n% G& ]+ {  }& |4 X
static struct platform_device da850_evm_tl_leds_device = {
- O* S2 _' L) Q) r: D; X/ J$ v        .name                = "leds-gpio",
& h5 ~' {9 R- ~7 ^: n' I        .id                = 1,
8 S! L' J9 h; X6 a" h2 C+ M: R        .dev = {
: K/ q2 |. n/ W) }# P& o! W                .platform_data = &da850_evm_tl_leds_pdata,( z+ X. P- D7 e2 [! {9 f  h+ j0 w
                .release = led_dev_release,
  Q4 z; d2 D/ b% M7 w9 @        }, e7 E( S+ L0 v% U# E
};
  c, s: J0 r0 y+ y+ L. G- J5 E
  L) F+ z( D1 q  m# C& ~( ?/ Astatic int __init led_platform_init(void)
: y& O" Q/ z8 j. F{* F% z% t" T% q8 Z. F5 X
        int ret;% I) ]4 W4 J+ |( O  L6 k: F# B
#if 0
7 t# n( W6 x* Y% z+ ]. B5 G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 W" K8 K+ G8 Q
        if (ret)
/ f2 r3 r/ H8 m6 C3 ^: S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; U* E8 i% K5 n
                                "%d\n", ret);
2 ~$ E7 G" B2 ]$ E. A#endif
7 |" ], s. M/ V. r( l- q        ret = platform_device_register(&da850_evm_tl_leds_device);
0 Q/ w% A' G% E        if (ret)+ b# F( h8 Y/ Y
                pr_warning("Could not register som GPIO expander LEDS");
2 c+ a& O) I6 C0 g) t        else5 C8 o) y+ s1 ^
                printk(KERN_INFO "LED register sucessful!\n");
; y7 W# {& V3 H3 @6 F5 u0 y4 C
4 I3 \4 l, y' t0 D# o8 C' O  Z        return ret;% |  U/ P! y9 g( g4 q! f3 h
}
* O0 c+ n( V/ q- \& ~, c2 @7 |1 R! G; l1 l5 G
static void __exit led_platform_exit(void)
3 O1 G4 U& {, p$ L7 y" ?4 |8 g& S; r{$ s7 T, @7 J* U# |8 `  D- b
        platform_device_unregister(&da850_evm_tl_leds_device);& H# r( z. J8 u% M1 `& n2 Y& j, P( g

/ b- {8 U9 K  H- m* H& F        printk(KERN_INFO "LED unregister!\n");& J8 z2 R  L; T( h( N$ A
}
# I/ g" A  u4 M8 L0 J1 a7 j1 S$ p$ z0 f7 z* [
module_init(led_platform_init);
' k( d2 T8 u8 B) W* x8 S1 L5 rmodule_exit(led_platform_exit);
5 E* l5 [( f# P" m7 c6 o' y) [# d/ H+ M3 g) w
MODULE_DESCRIPTION("Led platform driver");; K7 }7 {3 T( m3 P  e0 e' o, z* {
MODULE_AUTHOR("Tronlong");
( l0 R, w% \$ i3 g; J2 U7 ]MODULE_LICENSE("GPL");, M, P: h& V/ Z" ]& E  o6 w1 _

6 Q2 C& g% q6 X; t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-20 02:37 , Processed in 0.072987 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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