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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 j) V# f  d# t1 w. E. ]#include <linux/init.h>
7 X, \( J: Y% Y1 \! V#include <linux/module.h>! V, E! a& N8 V, G
#include <linux/kernel.h>
" v4 w! q# q' k* n#include <linux/types.h>
+ U% B; Z4 Q. O8 ?) u$ K#include <linux/gpio.h>
% ^7 l5 X) v7 W. c- q. \1 g7 P, c#include <linux/leds.h>' j) K# R# T0 L. N# l, I* B! T
#include <linux/platform_device.h>9 [/ b+ A2 Y6 g1 \& p& y8 k; k3 K
( ~8 J; n+ p! p) [
#include <asm/mach-types.h>; n1 ~' I( l1 O- a
#include <asm/mach/arch.h>
1 a/ V5 [6 w. ~. `6 ?#include <mach/da8xx.h>8 X  u% R' ~& n- h2 Z5 y8 u7 n' h9 u( p
#include <mach/mux.h>
7 s% C7 ^( G" Z/ w! p
3 |( N( ^% P1 Q/ m, I8 _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 b# {0 g& I! g* E  `2 a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); `# l6 h: t; ^1 ^( P& ^9 U: U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" V: M) D& ^. W3 |: H! O0 F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; b& V) R. j2 Z; V* X
/ p$ P, d! f) ]8 i; D/* assign the tl som board LED-GPIOs*/; C$ w/ M7 m7 I$ e
static const short da850_evm_tl_user_led_pins[] = {
8 s, o& l- v' |- ^. u! B        /* These pins are definition at <mach/mux.h> file */
6 `! j5 {  |; f) h) u. Y  h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 [2 O7 s7 y  n" C; @9 e2 e        -1: K- X9 s/ w; E; g7 k9 f2 S/ Y
};/ W: J% k4 m' K( C7 i; Y  Y4 D+ A
' C& r. `+ B- ?
static struct gpio_led da850_evm_tl_leds[] = {
( z4 k9 n" ?( |+ D4 `5 \5 _        {
( k" d4 T2 c/ s/ D& o# a, p                .active_low = 0,
% n; I; q# Y+ j9 Z* D                .gpio = DA850_USER_LED0,
, T- o# q9 x6 A9 f% {7 \$ O, M                .name = "user_led0",. e. Z1 @/ Z+ y- f# d- U4 e% H
                .default_trigger = "default-on",) `- u# I: J( G; ?) k
        },
- p2 e( [/ q/ s3 a        {
* ~- v/ C/ S- d" }                .active_low = 0,; T4 X( k" T- e7 [" q" S
                .gpio = DA850_USER_LED1,6 P: {- ]% w( [
                .name = "user_led1",
% @8 b. v5 P1 K7 F1 q7 c3 H& A; {* r3 r                .default_trigger = "default-on",
7 h: c' b( d8 ?% f        },2 P. q/ J  S' r
        {
. O+ z6 R- x  s8 I                .active_low = 0,8 [/ _/ w! r6 L5 G1 I7 t# i0 b3 m
                .gpio = DA850_USER_LED2,3 m8 l8 I  {' m
                .name = "user_led2",2 Y/ D9 Y5 f- c% W
                .default_trigger = "default-on",, ?0 E2 i$ N8 `
        },4 s4 v6 o5 ~/ |, `5 Z" ~! y- m2 R6 K
        {- B$ w0 ^4 B* N/ }
                .active_low = 0,4 l- @: |! z2 q- `: u
                .gpio = DA850_USER_LED3,
- n- S$ D  |  o2 L6 e                .name = "user_led3",
5 D5 _/ P! @4 [0 p( h                .default_trigger = "default-on",
. N) O7 u( L# s) d4 t        },
" K+ k  \" g+ r, z( _: T};: T: h" A4 j' X7 S* a

0 o/ d1 C: p/ `) ^" `; pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( Y: |8 o" W! Y/ o: X* y
        .leds = da850_evm_tl_leds,( v- g7 v/ q" s! \: e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 x1 c7 E8 p, v/ U9 `
};3 M, w; H  b  e2 Y

7 z0 v8 r' c; I9 }& [static void led_dev_release(struct device *dev)2 I, H) M  P% Z' G  @4 g
{
- L- ^9 R9 i; q, C/ c  r};- k' X# x) ~( w$ k. y  @
/ a4 y: M* \2 d8 @! K' y
static struct platform_device da850_evm_tl_leds_device = {
* k7 e8 c1 K# K) O+ W" a$ M        .name                = "leds-gpio",
+ ~% c/ j' J/ K& |        .id                = 1,
2 n% s. G, B0 m        .dev = {, b/ `$ |7 x/ F0 _4 G7 N
                .platform_data = &da850_evm_tl_leds_pdata,! u, c" T( H. F  \/ g/ K& W
                .release = led_dev_release,% |+ w; }/ T9 s6 l! E9 F# T; Z) Z$ f
        }4 h0 A$ r: i/ }0 N
};8 J) Q, _$ f4 i! z4 o0 s

: ~* C2 L, U: q' Z# Xstatic int __init led_platform_init(void)
' A0 R) _. P  {, c7 a0 m  [! x8 x{
. g; J; @) Z3 ?/ g/ W1 g        int ret;6 x  V7 ]4 E1 n1 E% k% T
#if 0
' ~9 h, x1 ~* b4 N$ e3 v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% A1 O/ n: [7 S1 l        if (ret)
3 x6 w9 O7 f( {! j) q5 k) d( M6 {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 K! y3 K; _9 k
                                "%d\n", ret);
2 q: w8 S, A; S  [2 k' P! X#endif
, A. R. `) E8 M$ |        ret = platform_device_register(&da850_evm_tl_leds_device);* s- a# t) `, }2 y
        if (ret)
; m) |: _) n: \2 B                pr_warning("Could not register som GPIO expander LEDS");
" N5 t* D; z3 y0 q        else
0 \$ e8 y) F# ^2 Z' {+ I                printk(KERN_INFO "LED register sucessful!\n");( U: ~' s/ P/ w. g* R, P
2 S& v" o2 R; P6 W# x8 Y
        return ret;
) }& g* V5 ^* A4 p' H6 Q" r& `6 f}" X. o& f- A% n: _# q% G! V
+ f) \7 i# a7 \0 j; R5 q" x+ Z
static void __exit led_platform_exit(void): P. ]& C, ?" |4 o! X
{
' Z+ l8 f' Z1 z! J5 ~6 T        platform_device_unregister(&da850_evm_tl_leds_device);4 I" @, k2 n2 E5 W' p

$ I0 h& [/ {2 w, r        printk(KERN_INFO "LED unregister!\n");8 B7 O4 Q5 {6 p4 m
}
+ z8 s/ F+ ?0 i5 ~
' ^; |$ q8 l# e: ^module_init(led_platform_init);
% L; _5 U* s$ L0 X% z0 J1 L; qmodule_exit(led_platform_exit);
; W) j& \$ e, i. O( b5 S0 @- N% r' H) s5 W
MODULE_DESCRIPTION("Led platform driver");
, l5 p5 m. @2 w8 r" u0 o% wMODULE_AUTHOR("Tronlong");) A& X9 v1 _5 w9 Y- [0 n
MODULE_LICENSE("GPL");
! v: u' G: W1 v: X% c- Y4 r3 F3 }1 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 02:59 , Processed in 0.040207 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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