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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& E2 W' w6 W1 _; X8 I; l#include <linux/init.h>
& K4 a  H! a; C/ M9 G4 v! Z#include <linux/module.h>$ W$ C5 @- H0 F# D( a5 d
#include <linux/kernel.h>
9 L% M8 x! V  H. _! {- O7 B& e/ y#include <linux/types.h>4 P' M. x6 L( r' m6 _# f  k0 @
#include <linux/gpio.h>9 `9 a/ U5 [/ w3 ?2 O& n( _: v
#include <linux/leds.h>
5 c+ `/ g  C3 |2 |9 M. K4 @#include <linux/platform_device.h>
  T# r! \: A+ N5 o+ i  L6 J3 m( _' r: O, M; w2 B4 K' p+ V' o0 D
#include <asm/mach-types.h>: [# h5 ^7 [! k) }. |
#include <asm/mach/arch.h>
% `" n* u0 V% j7 c4 C% w#include <mach/da8xx.h>
) c- \# \) n. K: r$ F5 w5 D#include <mach/mux.h>$ H4 j2 o; m( i! }( N4 p( O& I5 T

5 y  {! r0 B9 m2 ~6 m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& L, b% C1 m6 Y9 b% a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 F* h, Q2 Z/ g2 w+ U" \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( Z9 P* x- U6 U* D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 m% T( H9 Y- `9 N) L3 o

% X  @5 r# t5 q1 d, H3 l# O  F/* assign the tl som board LED-GPIOs*/; d& M6 h) I1 z8 Y' v
static const short da850_evm_tl_user_led_pins[] = {
  P4 G8 I- T" r8 g/ ^. H' o        /* These pins are definition at <mach/mux.h> file */
1 P- p! r+ s' S2 J        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 q' P1 p6 F- s/ i1 J5 Y" r  G: D) o4 {        -18 U5 l9 \  v- |  U" w$ f
};& V" z2 O, K2 Q% E0 P$ ?& |

; P( J, O& E: r2 l: c  ^3 Xstatic struct gpio_led da850_evm_tl_leds[] = {
1 U& [1 }/ o: g% Z# U        {0 _. `+ L0 `& ~5 N2 D
                .active_low = 0,
9 Z/ S3 N7 [, d0 q) j                .gpio = DA850_USER_LED0,
2 b5 Q4 V# n" `+ _. R2 z                .name = "user_led0",% ?7 G9 y! z! o0 u7 A& I! T
                .default_trigger = "default-on",
$ k* \3 M! `: _% v) C# n        },
/ O- c% Z, t5 D        {
0 W* w$ y8 ?9 Y9 x4 F                .active_low = 0,
5 s6 H5 A1 s4 n2 B7 i/ x& R0 \                .gpio = DA850_USER_LED1,. V2 O- r" I  W! ^; y/ U. Y
                .name = "user_led1",
7 a) w' t/ I# E4 `* [                .default_trigger = "default-on",
4 O6 Z( @* p; q9 t        },
& i$ z; ~1 r  }        {! D* ]3 j: ~  I1 t3 ~- r
                .active_low = 0,
& x, ?2 M; u  E0 x: F3 d3 O                .gpio = DA850_USER_LED2,
* n2 m* A( a, h7 H$ ~                .name = "user_led2",
6 i/ T, Y- N4 W. _% \                .default_trigger = "default-on",
' D: P: ^$ d: Y8 \        },
4 I" u4 A, e* [1 {* b; a0 W        {' j# F5 I0 f7 A. r/ x. h
                .active_low = 0,+ j( k( X1 B! t* x9 r
                .gpio = DA850_USER_LED3,% n4 r; c: B1 a5 s
                .name = "user_led3",
! O* B5 s7 \# l' e, j# J& N                .default_trigger = "default-on",/ V+ w1 A2 c( E7 \' N( k% o
        },
; C, T7 ?& k9 V};6 c4 V3 `- M. s! Q$ v/ g6 M

, T7 d8 A' N& I+ kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 }/ ^4 T" l- b/ H, p% W3 J        .leds = da850_evm_tl_leds,* o% M6 g# S0 ^5 a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* [- M( }, F$ |% P};5 y2 t. Z* o& }0 v
4 Y" b5 Q  _3 }4 {# H1 }* J
static void led_dev_release(struct device *dev)
9 r% O$ j5 m  u$ u2 x2 {+ _{, G* T& k8 C  w/ i$ z
};( [8 y: Z  W* ?8 G0 a3 B' h* |

( a# ?5 a, W1 p( a. Pstatic struct platform_device da850_evm_tl_leds_device = {
& r% I' j4 h; V) `        .name                = "leds-gpio",) C; N6 v6 D9 M) Y
        .id                = 1,+ {, l, ?8 E) `( i  c
        .dev = {
- U& u+ O: Y) ]' ^2 ?' {                .platform_data = &da850_evm_tl_leds_pdata,  o: T+ S" N1 V
                .release = led_dev_release,; s. s* V: B0 \2 Q8 \. E/ r6 {
        }$ m  T9 W+ ?6 @6 ^
};
, m1 B1 Y5 c5 q8 i9 B  a  y  v
7 `3 z1 e) B/ G; y9 l: qstatic int __init led_platform_init(void)+ x; t3 p; j# d
{/ O) j6 i" ~* Q
        int ret;2 o' w7 p0 s; M
#if 0
2 z6 N' t  V) ?$ V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) E" \7 g3 q/ y7 o$ Q        if (ret)
  R6 n6 z4 [% E/ E8 |/ I' R5 Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ ~; ~: ^9 ~5 k$ a$ V  m4 P1 N8 x
                                "%d\n", ret);+ Z2 ?$ o8 E( e- S+ f6 d6 k) ?
#endif
, f' w7 c2 j: r$ R        ret = platform_device_register(&da850_evm_tl_leds_device);- p! y" d8 Y/ r+ [+ x
        if (ret)
" B  W# {8 {3 b! Q                pr_warning("Could not register som GPIO expander LEDS");
! a2 `  ?$ j2 d% A( p. `* {        else
+ D; k) c, L; f' ~* s8 M# {5 ^( J                printk(KERN_INFO "LED register sucessful!\n");
) k, @3 w4 Y- J0 z' A7 ^- W; m
- A. @$ k$ F+ r& s8 Z) @" A        return ret;
% O" E3 R' C8 ~% [- Y/ P) Y}
( r# k- m1 w7 v" ]) s. w, M/ t) D
static void __exit led_platform_exit(void)! S6 U+ c  B) _. O' P8 q2 A6 E
{# ?" A' e# A( p3 R' f
        platform_device_unregister(&da850_evm_tl_leds_device);
9 l9 [$ O' {. a6 l# |) v% Q( R+ x% x% C" p, Y8 @; p
        printk(KERN_INFO "LED unregister!\n");
8 V+ x& a5 I# p# R% ]) U}. o2 Y1 p, z0 k4 W/ h2 V

4 v1 B+ K4 O/ r# ^! p& P& vmodule_init(led_platform_init);/ q. Y+ F  ?  U' c5 f5 k" I
module_exit(led_platform_exit);# Q: r5 _5 v3 o. w9 B8 Y
. i7 n9 ^% s5 ]! E$ [: H. f
MODULE_DESCRIPTION("Led platform driver");
5 ?- j- k6 A+ {8 a8 G8 u, iMODULE_AUTHOR("Tronlong");" I8 ^4 z7 Q8 {4 Z$ g1 t
MODULE_LICENSE("GPL");$ C$ d0 W8 o, l& a7 X

& y5 V& ?) U3 `9 z% v& ]. O. ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 22:15 , Processed in 0.041590 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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