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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  K% s/ @# Q5 r/ V: ]
#include <linux/init.h>' g8 j' H- ~7 H" {+ |' }9 ~- j( k
#include <linux/module.h>$ Z8 W8 G" h6 }: M1 z- U, U
#include <linux/kernel.h>- a, F: Z8 C8 n% F+ t$ L5 ]
#include <linux/types.h>5 a& z0 _& ~9 c9 r6 L% C! J5 \' B' O) u7 p
#include <linux/gpio.h>0 X7 ?' a1 z) ^4 O1 n
#include <linux/leds.h>9 o2 |0 Y+ {) Y) [; M4 _
#include <linux/platform_device.h>
& H4 M1 F# M* J, ]; O, e* n& f2 {) |1 v- l# I# A6 n
#include <asm/mach-types.h>
! }. ?, r7 K9 Z# u( |3 U#include <asm/mach/arch.h>* x; u2 L9 K" g* L9 B4 m" S
#include <mach/da8xx.h>
5 T8 n; p) c# U2 L" A$ i/ @#include <mach/mux.h>- z! x8 ^2 m6 |: Y- e
2 M6 ?$ x/ a  s& `1 q% F# U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ `7 r9 N$ u/ K6 j* a* W  p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- `2 v0 ?+ C6 y) d& C& @0 J9 c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 E4 w. x) ]4 T2 d9 V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% B" N, \& b/ y4 `9 a
3 g8 `; I: z: u% ^0 [/* assign the tl som board LED-GPIOs*/
; M% K. E& s) d7 L8 }5 Vstatic const short da850_evm_tl_user_led_pins[] = {) Q5 ]. L- m7 c6 g- k- J3 }0 x: \! L
        /* These pins are definition at <mach/mux.h> file */  q" X+ A2 d6 _6 J: x% [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) O# S6 h3 c& h9 k/ H
        -1
0 S7 H8 M, {# C' k& Z3 J1 X) T+ S};
. d, l5 ]+ ?8 B* w' t8 }8 a/ ~. y4 `" x) T2 k+ k) e1 S, \0 T& y# P" f1 p
static struct gpio_led da850_evm_tl_leds[] = {
+ K9 {2 n3 m$ v8 f$ p; B% j# x        {
7 n( e$ ?: Z. ?- V+ z& r                .active_low = 0,4 B0 o1 [- c+ Q! Z2 E
                .gpio = DA850_USER_LED0,4 o/ t  ?8 T$ g8 B
                .name = "user_led0",
5 `# [% N# K  d: J/ w; l2 H                .default_trigger = "default-on",8 q5 t- O) _0 ~/ x& e# Z
        },
, Z, T, c: M9 W& a0 y        {9 g& R# R4 n& q% _) X, t
                .active_low = 0,! Z. g* c/ R3 h/ }0 \
                .gpio = DA850_USER_LED1,
& j/ Z; j" x$ {( V5 R6 F( S                .name = "user_led1",/ c( i) N3 o1 v& v- M
                .default_trigger = "default-on",
8 H: \0 S9 y) b- }- Y2 r        },! C; q. S8 L) S  C1 M! z8 f
        {' a% g: K1 Q* w( l5 Z
                .active_low = 0," @8 z4 [2 Y& T) K. L
                .gpio = DA850_USER_LED2,
1 H, a: M; b2 O                .name = "user_led2",  {( T1 z* w* u
                .default_trigger = "default-on"," y) C% b, ^5 V% W* j3 V
        },
7 p+ U2 l7 a9 H+ G7 v  V6 u) \* ]+ O; G        {3 {5 o' r; ^3 `! S: v
                .active_low = 0,( F  x" y% z: B/ `
                .gpio = DA850_USER_LED3,
4 \$ {; v+ p0 A4 `' D6 Q                .name = "user_led3",
& K1 z9 q1 L4 C7 {+ D: i* R                .default_trigger = "default-on",' C$ i8 _# c# j5 j
        },+ Q* k# g0 T4 r- |& i
};
7 m( f# ~3 j! E4 |
( C6 ]: @5 }, G  k5 q. }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! g  m4 _  T7 X
        .leds = da850_evm_tl_leds,5 y' B! V5 `/ x2 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 v9 w* i# E5 t};
% I0 s1 i$ D2 w" X7 H, ]& F( w0 A9 ~8 ]; |' s' C) @
static void led_dev_release(struct device *dev)
  R& a5 Q; |8 f" i' T7 A. f{
1 [0 k; h( l& k};3 X. G5 b! \, u% Y2 H

) A8 E) |7 B2 c1 `- s: q) Mstatic struct platform_device da850_evm_tl_leds_device = {& R$ S( Q3 T& l8 i
        .name                = "leds-gpio",
  v/ v8 Q; H7 q* ?# [9 {* [        .id                = 1,7 F7 K  k9 K5 ]# W, w8 n; ^
        .dev = {
5 a2 p' S: h5 x; ^8 u7 |                .platform_data = &da850_evm_tl_leds_pdata,$ M: ?3 W# t9 x8 ]0 Y
                .release = led_dev_release,6 ^+ m" c" v) U$ f" X; ~" t* c
        }
5 ?9 Y- g8 I) h  k8 _};
, n& i8 `! A9 ~* c: r% W) G7 I; e. q0 T0 c* p9 N4 r) K7 Z/ Q
static int __init led_platform_init(void)
- E! T$ T/ z# H0 t' Y; n{: X* |$ {# m% o% K
        int ret;
/ s# E' Y4 \# i#if 0
; H- Y  c/ o/ ^. M9 o- z7 e/ K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* z  H+ ?3 K. r5 c5 p4 D
        if (ret)  y/ L5 v- H/ i- z9 o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* R) O: Z) P4 ?! Y) O/ p                                "%d\n", ret);
2 ~& _; \/ G) p7 p#endif
1 R7 ~" \4 ^; R/ O: w6 n0 l        ret = platform_device_register(&da850_evm_tl_leds_device);
7 `6 [3 \: X! r2 t8 d" u0 h        if (ret)
- \$ M! X/ Y% W# a1 M0 K" n                pr_warning("Could not register som GPIO expander LEDS");
) ]  y" m. C9 E0 k& _        else
& _0 ]: E! l, B" ~4 O( W- w  b; I) f                printk(KERN_INFO "LED register sucessful!\n");2 v! H0 t% M+ d/ P9 j$ [) b' x
8 G6 ]$ K% }; P" a% X) |
        return ret;
- c$ b, P5 O( {+ w}: Z8 m& w( E+ a$ Y
( o8 r4 D- \% Z' S6 t7 Y# F5 T
static void __exit led_platform_exit(void)7 E) `1 q4 \) Z* u1 v. D; ]& @6 f
{
- b* G9 x3 w' i        platform_device_unregister(&da850_evm_tl_leds_device);* \' R* Q  j6 q9 g# b, Y

$ R7 ]; J5 U  K$ g. b' Y        printk(KERN_INFO "LED unregister!\n");3 `! \7 m% F, O/ f! I' ?
}
3 P9 H. K% r4 s1 {# F0 f5 e) y1 y3 k
module_init(led_platform_init);
- ?2 Y: k: v" ^5 M5 [module_exit(led_platform_exit);
- ]1 A4 K* h5 y7 s" ]5 q1 n' V0 l8 [: j6 a" W
MODULE_DESCRIPTION("Led platform driver");
: x! f% V; L: Y2 y5 pMODULE_AUTHOR("Tronlong");5 E/ G' O: E6 M# g4 W# i% }
MODULE_LICENSE("GPL");+ @) A4 v1 [+ z$ B2 D# r: e/ [

$ j) Y, G! h- U2 I" g8 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 12:04 , Processed in 0.038844 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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