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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, v9 M" T( h" U9 Z% ~4 }#include <linux/init.h>
. T5 n9 h, U: ?5 H5 |$ u* q#include <linux/module.h>
' u; i. f6 p) k( T) k#include <linux/kernel.h>8 J6 A+ q0 }0 d6 G$ [
#include <linux/types.h>8 ^, @  m4 R, G8 t( u' O' j/ f
#include <linux/gpio.h>1 Z3 o' I" K' ?  s( X1 r% N
#include <linux/leds.h>" ?# z3 M3 @; t% y$ p+ l: y
#include <linux/platform_device.h>
; F. q6 U; k0 k- S  Q8 k8 K# Y" ]7 T" h9 w
#include <asm/mach-types.h>
3 ^% o9 a+ {  c4 ]& M#include <asm/mach/arch.h>
) J9 e$ ^7 |* G8 }3 ]: P, f#include <mach/da8xx.h>
" g4 P+ J+ x0 h7 a#include <mach/mux.h>+ X( q- Y1 d' j7 T6 F  a

- X& G2 y; l$ [* S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): ^' Z8 S# Z; d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; h2 R) X2 T( n% ~: k2 r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 c9 U3 `3 a. |* o* X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" S4 [8 Q' W. ?1 J' W: F+ S
* D; ?3 B1 f3 \9 j% w/ P2 \/* assign the tl som board LED-GPIOs*/
$ n, t" A% e& z+ \0 c' Astatic const short da850_evm_tl_user_led_pins[] = {3 v, }8 z5 r+ h; B" R
        /* These pins are definition at <mach/mux.h> file */
$ e2 ~5 u# h9 R4 `6 {- r& N- f/ G9 F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* z* t0 o- ?  Y& D( g5 e
        -1% i) n& T- u( p, P
};/ L7 \% o6 n3 K: r5 v9 A; W
- P5 \- M- q4 |' X* A2 w
static struct gpio_led da850_evm_tl_leds[] = {2 ^& W- b. C% x, A! R7 C1 }
        {7 g! u* f+ B3 [2 [) ]
                .active_low = 0,
% N- b" M" l1 x9 }                .gpio = DA850_USER_LED0,
' w% x6 E3 }, j( r                .name = "user_led0",9 }9 h  v, d; U+ b
                .default_trigger = "default-on",
" g7 C# e2 `2 P( V; G% ?        },8 C6 q! `" h8 {: v/ A" i
        {; [) T1 H  R+ u- P/ U6 a# q
                .active_low = 0,
5 j! q7 f; s3 H% O                .gpio = DA850_USER_LED1,8 E1 d. Q8 ]. I5 [
                .name = "user_led1",# l' I8 S4 \1 C, o; ]
                .default_trigger = "default-on",; [* G/ R" O4 Y
        },
7 |) u6 z& d9 h; a" Z. }        {
" s- a2 _- I# v7 }                .active_low = 0,
% E3 y+ C6 \8 ]                .gpio = DA850_USER_LED2,; N5 f+ F% ?! X. c. J9 O
                .name = "user_led2",
+ N: \- E. r' c  j4 z# q) n6 L                .default_trigger = "default-on",0 ~( ~  `* V; z" ~1 t, Y" v
        },
+ V4 M+ l' H1 P& t. A        {/ M  o5 O# M7 x3 h" ], \7 T
                .active_low = 0,: D5 B% w( N5 u% {2 w* c& _; w  G
                .gpio = DA850_USER_LED3,: c9 e3 p$ K" a& Q6 s% x+ z
                .name = "user_led3",
! _/ z8 E) ?+ u3 C- n$ t3 W                .default_trigger = "default-on",
2 l% |. b9 f7 b: o* O" u: ]        },
* J) A8 w% N  k! ?7 J};
8 \" `2 G, q  G; b+ n& V+ g) P) b' F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 E+ D; r! o9 H: O- m: G        .leds = da850_evm_tl_leds,9 B4 q( V  W; F& O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 ~- Q8 {' s) _5 y
};/ N  |& P" h4 @1 m+ ^
5 y0 i+ Y9 M3 \7 Q
static void led_dev_release(struct device *dev)! F, D0 G: o: @) p- I5 e
{
! h: Z1 I) t$ ]! D) J};) U# B" l" C0 j) H, q/ @' n

- Z( U; I( o4 kstatic struct platform_device da850_evm_tl_leds_device = {+ T7 v8 c+ I: y! e1 I, E. e2 d; ]! G
        .name                = "leds-gpio",8 N8 X' n8 P& g/ G/ b! ?
        .id                = 1,
0 G+ _; M+ \' T9 n- j$ H5 T        .dev = {- F/ Z" R( f' s' r& f
                .platform_data = &da850_evm_tl_leds_pdata,4 K( u9 Z4 ], ]1 _$ j4 \
                .release = led_dev_release,. J0 Q; [9 f% |, C$ n% z; |
        }
. N0 _( q9 C* _/ Y};6 X. F. U6 F' L. O# ]* E

( Z9 U  t, Z/ W, K8 qstatic int __init led_platform_init(void)
( {- v# n0 B1 i/ n( }9 b6 J( l; i3 A1 U{
6 g* P- ~- |1 s" E- B        int ret;. M7 w, l/ z  }3 Y5 r* d) K
#if 0
' S7 E( q4 \+ B  R, ~0 A6 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 c( [/ l- \( `
        if (ret)
6 \  ^2 D+ M# g" p3 s8 D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 C# M) p! u$ ~" w& M9 o* L                                "%d\n", ret);
4 N9 [) @, m+ ]$ j#endif% C( D% r/ w, w0 M/ [( Y
        ret = platform_device_register(&da850_evm_tl_leds_device);9 {5 X/ `" i. ]( S/ h0 s$ g
        if (ret)! Y+ G- a! Z% `1 y; i
                pr_warning("Could not register som GPIO expander LEDS");
7 H' D4 t7 f" H        else
  ?* f; ~. }( Y6 P                printk(KERN_INFO "LED register sucessful!\n");
, E( H$ r% u( j- G5 r9 h5 k1 D% }. w. j( Z/ }  s& R
        return ret;
( l6 z. Z5 Q- u8 V7 @( g! c  X}2 c9 ]3 y2 K9 }' i
# Q: L+ p: ?$ H: n+ U$ @0 N9 E
static void __exit led_platform_exit(void): v# _- M) P$ @% j6 H
{8 c2 |7 ~+ Q, b6 b  W
        platform_device_unregister(&da850_evm_tl_leds_device);
  c. W- {7 ~0 C/ B% s3 p2 v0 @: A( `
* k! C! V4 y' b7 |9 f% ?# q1 W        printk(KERN_INFO "LED unregister!\n");8 w* l, J7 ~1 h' ~% D6 B
}
" I+ e, Z) K  A2 z
1 D2 w/ q) m# p) [& Fmodule_init(led_platform_init);% G- w6 R& F! ]3 n# m/ i
module_exit(led_platform_exit);3 Z2 a7 X) m3 J& D

6 I) i0 ]9 h% F- u. }) sMODULE_DESCRIPTION("Led platform driver");* T- i! ?( `* d% G/ ]3 d$ M8 q
MODULE_AUTHOR("Tronlong");9 v, I* c5 X+ M# F
MODULE_LICENSE("GPL");; v, S9 |) K. I' S- P

6 t, p( w  O0 n- X  B* ~5 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 23:24 , Processed in 0.039310 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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