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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% M/ a# L& O# v
#include <linux/init.h>* y. u& D9 `7 R4 u* D9 `3 W- U: ~
#include <linux/module.h>( k  I, J# c# x
#include <linux/kernel.h>
; z% {0 c8 `, H  ~$ N0 F3 v! x#include <linux/types.h>
- k  v% E  a! L$ {" ^#include <linux/gpio.h>
1 W/ ]3 ?: t* `9 F9 i5 o#include <linux/leds.h>0 Z/ ^& [8 O# M% V9 A8 m! @
#include <linux/platform_device.h>
% r2 `) @" ~, M; Z- N4 c" Z% M1 H- t) [+ E1 B9 F+ a
#include <asm/mach-types.h>
7 d6 J* p0 Q: ?#include <asm/mach/arch.h>
2 D* \& w- o7 ]- I& [' Y/ S#include <mach/da8xx.h>
: V5 u! e) K$ M! H. n#include <mach/mux.h>( s5 W, ]2 T0 r4 ^( d6 D" m: L
4 [- G$ C, ~( m% t! b: i5 V1 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); K% F5 l/ D; v5 p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' x$ |# Q  ^8 e  `: C4 P7 X/ s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) |% t, {& |5 A" h) t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* e& E7 x  w8 D4 p' C/ K; ^

7 l( }! a8 Q6 R) J# f& l8 p* `) o/* assign the tl som board LED-GPIOs*/
: v& s5 d  b. }0 T0 `3 Vstatic const short da850_evm_tl_user_led_pins[] = {/ w- L2 i  O/ J, _: i( u/ z' n* o! Z" m
        /* These pins are definition at <mach/mux.h> file */
, t" ]- A" `9 W" h: o" e! y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# p; [7 ^& y2 A; r
        -1% ^% |% o, C# A1 y) H4 m
};6 |$ e! Z! M% v% S

9 ~: a9 q4 j3 }static struct gpio_led da850_evm_tl_leds[] = {
# {7 N: I0 y3 D& m        {
- D' C) n8 C5 V                .active_low = 0,1 s; {7 S4 d; [
                .gpio = DA850_USER_LED0,- [. \( D9 L- J5 Z
                .name = "user_led0",( y4 }" x9 C  D: h
                .default_trigger = "default-on",- D$ ]  {) E4 p6 P9 [
        },% _) J7 X9 h! p( v' D* U: Y6 t
        {
" Y# z! t: U- ?# @$ ]6 C                .active_low = 0,9 u$ V  r4 @- _' c; U- ~8 k/ g
                .gpio = DA850_USER_LED1,) O4 h) \5 q3 l' W
                .name = "user_led1",
  ]1 i+ K6 \1 U, _0 B2 q                .default_trigger = "default-on",. \& P# R4 J( d
        },
/ [6 V8 U3 x+ B        {
  H$ U% T' C  v; W$ p                .active_low = 0,
; ^) d5 c) {9 v                .gpio = DA850_USER_LED2,
* }5 [5 o% f3 v5 M: r! E                .name = "user_led2",' W& O9 {" J* D: y  B0 q( I3 i3 Q: R+ ]
                .default_trigger = "default-on",, @: _; B/ u2 I6 L9 ^4 `0 \
        },
. Y! p9 m. F- t; f9 l  s$ a' P        {
' o! M9 a- n* ^* c                .active_low = 0,7 e# i# A6 W% S2 t/ \/ }- F7 {  u
                .gpio = DA850_USER_LED3,4 Q3 A) W/ U6 `
                .name = "user_led3",
5 s0 r0 a: r3 q/ x8 [* ?6 O                .default_trigger = "default-on",4 o0 ]8 e& n; H9 p& D/ ]- p
        },
; C- H6 y& c/ A: ]# e};
6 O# _. L" F" N# ?' ]9 e! n
, ?- K# t% N3 c4 m! M4 Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 V7 O: ^5 I4 s! O" ~
        .leds = da850_evm_tl_leds,9 p  G( W- V; e$ I! J% @8 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," l6 |% J/ _0 g* b
};& x+ R4 B% A) O5 r1 p

+ |/ W/ T! t( {1 {+ ?static void led_dev_release(struct device *dev)
& q% _- h: N- \. w. j5 Z  H{
- \" R! g3 Q' \  h};: H! r& q; U5 F- ?0 L# e8 [

8 O5 o' I- y1 b$ s, Rstatic struct platform_device da850_evm_tl_leds_device = {. D! q! F: w1 G) _; W1 d; L! e
        .name                = "leds-gpio",
0 q5 G, ~4 W5 i5 ]1 J+ V/ j        .id                = 1,& S2 F' e: ~1 x! f: n! q# i1 @
        .dev = {
! K3 M- p+ I1 F. g  j* Y; {                .platform_data = &da850_evm_tl_leds_pdata,
5 ?" l  a8 E0 A" m" G9 u( `                .release = led_dev_release,
, J6 d2 F3 B2 m# N/ R" Q6 b9 G+ j        }
# z) |2 Q: ~( @" q8 U( E};# t' Q8 O% c5 j7 x

& P6 x  ?* h' c+ V, ?1 G) Cstatic int __init led_platform_init(void)6 X- V& ~/ `$ d) e" v$ b
{
$ ~- Z6 G, v) ]1 A6 }        int ret;
, m% G6 V0 h; V#if 0+ @3 d2 M& k# k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; Q$ a! O; `9 M) d  O
        if (ret)
6 m' c* J/ c/ A: q" `; M' |) F0 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- x6 _/ s) }# B. B0 T
                                "%d\n", ret);0 s3 D; m( [# u' h. h
#endif
' _2 h  c$ p) T        ret = platform_device_register(&da850_evm_tl_leds_device);2 T+ |% x" J- R1 l+ j" x- W
        if (ret)0 j6 G3 r% ^5 t* E
                pr_warning("Could not register som GPIO expander LEDS");0 ^3 U6 |( r+ w/ C- k1 V
        else
4 X8 a& P) v' r/ e                printk(KERN_INFO "LED register sucessful!\n");4 [/ Q  c9 H) u! Q2 V) l0 I: }8 f- s

1 V  R5 c  r' |+ A% ?        return ret;. T$ {; l7 o! I# z
}! W* b1 M$ q( X" V

; Q6 k0 e* `* tstatic void __exit led_platform_exit(void)
/ T; u: }/ Z! Q* J" w9 A{
3 G! y1 U6 S5 L  E, @        platform_device_unregister(&da850_evm_tl_leds_device);
9 @1 x$ }" @  G$ D' q; J( ?. J* E% E9 c/ k% V/ C' r3 T
        printk(KERN_INFO "LED unregister!\n");
- d5 M& @, V5 l( _}
! q5 I  E/ i9 I/ F$ ^* @. q# |
. S2 @" A, z) j: |) e" ~module_init(led_platform_init);
7 Q5 ^5 D" }  e. `! W3 ^module_exit(led_platform_exit);
* F$ m2 K% n8 `$ e% S- Q
$ v# H/ O; _$ K" a2 aMODULE_DESCRIPTION("Led platform driver");
. O! U5 R1 K6 j; M/ V- hMODULE_AUTHOR("Tronlong");
1 H2 i- @& }+ y( V5 hMODULE_LICENSE("GPL");( C4 i. R5 ]( y  `

1 {7 v$ b  S7 ]; c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 07:55 , Processed in 0.039590 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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