程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 f' e1 k( O( w# O  k
#include <linux/init.h>
( O$ e  g5 `& L; D* K  x' t#include <linux/module.h>5 y  `) @+ C  B1 `. w# ~
#include <linux/kernel.h>
( B: {! R2 ^. N7 P#include <linux/types.h>
* E4 p3 s8 l  i3 C) e/ c- x#include <linux/gpio.h>6 t' |2 [4 w7 C+ N
#include <linux/leds.h>6 ?" C: |& g8 u/ @
#include <linux/platform_device.h>$ r" F. _- L' f  t. [4 s- M' L- U0 h: R

+ N. P4 E8 G2 M" R0 e6 V#include <asm/mach-types.h>
4 b8 }$ Y* z; e5 }7 f0 }  z#include <asm/mach/arch.h>
6 r9 m5 q9 O* s/ C% z2 a#include <mach/da8xx.h>
( {" S# w, u. F$ S  u#include <mach/mux.h>
6 S9 Y, V/ T: V6 X( v
- a* L$ O6 a- b/ K/ [+ ~' C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 B; n  Q0 v$ F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 Y2 L8 {& x# g8 i$ P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ t  |! _+ O0 z# J2 \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' R" ?. a4 B$ m7 q' x. A% o
! I8 r8 F. m; V/* assign the tl som board LED-GPIOs*/! A/ c; u& k/ a: ~; y) h  N/ u/ `; r
static const short da850_evm_tl_user_led_pins[] = {
1 C4 ^6 `1 v, B# M1 k! K. S. G        /* These pins are definition at <mach/mux.h> file */
* W/ H! i2 H- K( M5 X: w" W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ B% p5 K) k! B5 {( U
        -1# N- R& T$ q% I
};1 j8 d4 s% F0 z- L

* U2 K+ d& {, v" m2 {static struct gpio_led da850_evm_tl_leds[] = {
0 H  t/ S% d3 g; n        {" K  ^$ c2 o5 L5 ?# h& `; s
                .active_low = 0,9 [* F& [, d9 v" j; _3 B
                .gpio = DA850_USER_LED0,
. k6 a. k9 X# F& t0 H  o                .name = "user_led0",
# }. E9 X  S, ~* C  v0 n                .default_trigger = "default-on",
+ k& R2 H, F8 a- X' W- Y/ @        },! [- c3 q$ }9 q" n
        {
9 q& i3 Z8 K) Y' n                .active_low = 0,
  g9 x0 k" X: R4 |: H4 e& X                .gpio = DA850_USER_LED1,6 d! v7 N/ u& A8 m2 Y
                .name = "user_led1",& D: O# u) i. B  t, V" Z
                .default_trigger = "default-on",( I' n2 {8 X% p! w
        },- y2 L* |9 ?6 ~0 m. H
        {
2 c9 w$ d# {) c" P9 d2 b- l                .active_low = 0,
. M  W  x8 _4 v5 C+ Y0 A# R3 b                .gpio = DA850_USER_LED2,
8 P) t( z" [$ F6 f) N                .name = "user_led2",8 o/ m% z6 E4 ^$ C
                .default_trigger = "default-on",
* s$ ^' e; w9 T1 p' o5 Z        },
* O) V6 H9 M  u7 }        {
* i  o. b# J) B9 U' P6 N' f2 W, f                .active_low = 0,; J4 v$ k9 d' p, o
                .gpio = DA850_USER_LED3,: }. Y5 T2 ^8 J* @8 k% G
                .name = "user_led3",
" L: ^# L9 ?; p) r; }! ?- @                .default_trigger = "default-on",
0 {4 Y1 v. |3 h" U, U        },
; ?  ]# j3 C. ]. o2 ?& l};2 }/ w' }" x5 j" S; H1 l: ?6 u

8 _, a0 n+ |' X2 lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! Y: J1 M$ v6 g9 B5 [: d& S        .leds = da850_evm_tl_leds,- e& P5 i- O. p$ v# f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! Q3 {4 r/ X' p* T2 v
};
- A9 I  O- @( t& B  O1 N8 O( o" o6 k- {: n( K
static void led_dev_release(struct device *dev)
& y$ A' G3 ]) \3 `{
; w. n: N& ^% M$ P};
6 N- S4 X4 X2 L8 x) [/ U! p5 J' V% _( a* y0 Y9 `
static struct platform_device da850_evm_tl_leds_device = {
5 Z* O* n. \2 n* `- o. V5 p        .name                = "leds-gpio",& \8 n+ @! ^  g
        .id                = 1,! }: b# z; N% D3 V9 Y; w% I* T
        .dev = {- u; v0 Q- f$ g' [
                .platform_data = &da850_evm_tl_leds_pdata,0 Y/ e: _$ W, @
                .release = led_dev_release,
& N5 j  l* i0 G. I3 [; I9 M9 S        }% L5 S+ u/ O2 c
};* q( P* S8 ?+ ~. {  y

3 P0 P4 l1 C' e8 k4 c& nstatic int __init led_platform_init(void)$ W! ]7 O. ^% Q/ ]( i) J) m
{
9 k3 z& o/ w; x7 p; `- v1 s) _% X        int ret;$ ^; t1 `$ j# O6 Q
#if 0
3 B( G5 _9 i, E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- U- D& f0 ?) Z2 E: `        if (ret). j9 `% H  i$ o3 q4 m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* d  B" R" m- b                                "%d\n", ret);$ L6 K+ P( k4 n# H* d5 F
#endif7 h3 J3 t' b/ G% C: ]! ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
! ]' V! ^0 R' v0 Y; |: ^        if (ret)
' t5 S" Y$ ?9 ?5 O9 k' C                pr_warning("Could not register som GPIO expander LEDS");& \* B; b  _( T9 q: {  X# Y8 Z' e
        else' L5 r- K1 Q  j. \3 k2 O2 ~
                printk(KERN_INFO "LED register sucessful!\n");6 i6 Z& a3 x2 l) r: n
1 V% Q9 |9 O+ i
        return ret;. Y; M* P9 l) u* }0 m4 D3 m
}/ M' }8 i/ q- Z0 ^. ?* e

1 |( X$ D& H; K2 K% j3 tstatic void __exit led_platform_exit(void)# L0 X8 }% T8 i! c5 e0 f
{9 O" P8 C- t8 A) Q
        platform_device_unregister(&da850_evm_tl_leds_device);/ |( J5 Z0 W9 I
% R8 y4 h* _6 Z- K9 m: z
        printk(KERN_INFO "LED unregister!\n");
/ Q: g" p8 L, a: t+ f}) H" a1 ?: P: ^% f: a

' V6 t" A. M' J; Fmodule_init(led_platform_init);
* i! z1 Z) b7 b* x  Mmodule_exit(led_platform_exit);- b" j  ^9 }/ X  ~$ J( ^" M, h5 p
2 s3 K" b8 j+ H! K5 z/ Z& k5 ^
MODULE_DESCRIPTION("Led platform driver");7 J# I9 C0 V5 z& u# P
MODULE_AUTHOR("Tronlong");
8 L) g, k- Z5 F, ]MODULE_LICENSE("GPL");9 t* }5 ], z! ^) K# }" F% K
9 J1 G4 V# }3 D# m# p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 20:47 , Processed in 0.038037 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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