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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' s. }, V1 W2 ~8 K+ s# l; e#include <linux/init.h>2 Q5 K, I1 `! [+ ?) b
#include <linux/module.h>" K; b1 A0 d) q7 F+ z5 d5 i
#include <linux/kernel.h>2 E- d- N$ _7 r+ r) \) \) n( l) C
#include <linux/types.h>% I9 }5 a0 [7 P: R% s
#include <linux/gpio.h>
' N7 x5 C. l( c- e' A#include <linux/leds.h>
  u/ I. i, Q  d#include <linux/platform_device.h>% Z. f4 H2 c! y& e# H8 r, s& d

2 N1 Y3 q2 D) j- T& r; p" n. ~' H#include <asm/mach-types.h>
3 _5 @! I, `( P5 `#include <asm/mach/arch.h>) a9 W# U$ n& p5 Q
#include <mach/da8xx.h>0 i* q; Z6 H9 {+ G! p' g- w
#include <mach/mux.h># C& L2 K  @2 ~5 X" _, t

# Z  Y3 W+ h& r( B, G8 o0 Y1 `3 [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 h# T2 \4 p; V: L$ q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ J. d, k! ?3 g' u+ Y3 E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): ?  Y8 Q2 e, S+ I9 Z0 M4 x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 Z* z' s' b; f; _2 ~$ Y
3 ^0 ?5 D/ D% a" f  N; A% \4 M  ^9 |
/* assign the tl som board LED-GPIOs*/
4 B# f" |6 \" _2 b; y5 H2 W- |- [' K8 Fstatic const short da850_evm_tl_user_led_pins[] = {
; _* G$ P4 Q0 v        /* These pins are definition at <mach/mux.h> file */
. E" u6 |: a( ?% O$ F1 `! k( `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 f+ k- u' `& }
        -1+ w1 t% l/ ~% B
};, q7 ]1 {1 q( f  f3 \, y% G, A
9 I; ~4 ?/ c! a$ u6 d& Z" T% m
static struct gpio_led da850_evm_tl_leds[] = {/ r7 y% }" L  \5 B& f+ I+ L# a; H2 H
        {
$ v+ e* m( i. o1 g& c& m2 i                .active_low = 0,' _3 g/ c0 U9 @% _
                .gpio = DA850_USER_LED0,- w& K/ ^+ x2 X9 E  N, @8 @9 e
                .name = "user_led0",
/ j: x: r) f3 n                .default_trigger = "default-on",1 P6 q) Z. _2 m8 i
        },: k8 ?+ V: M& n3 H: v
        {
2 w2 a, p/ A4 V& d0 P                .active_low = 0,, }- \# I; m% J. T
                .gpio = DA850_USER_LED1,4 I2 s% J' i; i
                .name = "user_led1",# V" h3 A9 Q! K
                .default_trigger = "default-on",
7 Z' B( q8 d$ y) B$ R, W* {5 y+ w        },
1 a9 z7 A& p' z/ C+ a9 J        {
+ ~5 p1 z( U2 Q9 d                .active_low = 0,9 t7 X' m1 Q6 e5 q
                .gpio = DA850_USER_LED2,' t+ k. l( h4 E" M
                .name = "user_led2",
* \5 }$ r% K) F9 B7 t  M                .default_trigger = "default-on",0 t) _; i! z* o) ^4 l
        },6 W( V3 h9 n/ t3 C/ a1 d( T
        {
  M9 E/ o5 a* Q. V9 u# P                .active_low = 0,
- A6 X; I! U/ s- m) o/ {                .gpio = DA850_USER_LED3,
* g% X5 N/ D" A" H8 G4 u( s                .name = "user_led3",
7 T* H( {; }% G$ D                .default_trigger = "default-on",
7 s* g" i9 v0 z# o  r8 L9 n% v  g        },' u7 v  g7 D* n0 V, E
};
3 Y2 l; p: W5 I$ ~; N% |
) ]' a2 C  }) e0 Y9 t9 Sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- A  e$ v' d  ^+ E: E2 M& i. H) }
        .leds = da850_evm_tl_leds,
; v, q0 o% e8 e5 @3 d, \  y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 S8 B, ~8 k* O, P
};
; v+ Q$ |, s% A1 d! \8 {0 o
/ U# G$ ~4 i3 vstatic void led_dev_release(struct device *dev)
2 r: c' ^/ B: I; d* Q4 c4 P, N! w{
2 J9 p8 u. N9 R/ I' Z! x};. o( P. k( A5 }. G# y
* W+ g$ ?: n" Y8 j0 u" V* S
static struct platform_device da850_evm_tl_leds_device = {
1 t7 U9 t1 o, I% G. J6 E        .name                = "leds-gpio",
3 ?" v* I& W; w7 O3 T        .id                = 1,6 `5 Q3 t- }) X4 S- X5 L9 n  Q
        .dev = {
0 R6 m3 j) g# S                .platform_data = &da850_evm_tl_leds_pdata,- n5 ?) ^# a. o3 ~+ X' _2 j
                .release = led_dev_release,
! G: h5 o0 g( R7 y5 o9 m# }* O        }
8 t# `2 N. @- e+ N; h: i. N};
) y) ~6 {! J+ p9 l0 m( r3 J8 D( n1 Z$ H  e4 z
static int __init led_platform_init(void)
8 t. p% ^4 u, {% S* N: C  O{
$ o' Y# Y2 W1 M        int ret;
% g; u4 A4 f/ p/ U8 g0 X, d#if 0# a  h7 @9 R5 ~% n+ F: U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 R' m5 K$ }: m: i/ O) k7 M        if (ret)
0 O- x4 H1 W  A; s2 b. k2 i                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. d0 H) W0 l* a. z                                "%d\n", ret);# f& ?3 S* _2 m* h
#endif2 y: V% S% ?4 A' N: K0 P" g
        ret = platform_device_register(&da850_evm_tl_leds_device);* h6 v# @6 \' L5 W
        if (ret)
8 @) n$ P( M6 A( T4 j                pr_warning("Could not register som GPIO expander LEDS");
$ |( |$ L9 R" [1 z& d        else
0 \. r2 v4 k$ |. ]) W9 m                printk(KERN_INFO "LED register sucessful!\n");( t3 Z# E' W% o4 s  B

. [% m1 P3 z: z6 d: D* j' Y        return ret;
9 @) F0 {+ K) N}# g4 f! [8 O" `  g8 ~% z6 D
# u! ]: Z% s. S
static void __exit led_platform_exit(void)
* f; G& _9 o" [2 ~6 u{% a1 ?! i, Z. g' \4 O1 d
        platform_device_unregister(&da850_evm_tl_leds_device);
& B" E3 n. M5 l$ o; B1 ^2 u# Z: R9 b: k' V
        printk(KERN_INFO "LED unregister!\n");
4 _! @/ Z3 E+ s0 n0 q( t}
. n7 D) n& Y8 F
8 Q* R! U; a2 Imodule_init(led_platform_init);
, Z3 C% V/ }6 `! _6 nmodule_exit(led_platform_exit);; }! d4 g( @; b! a) E" U3 B: k

, Z$ y9 q7 k5 g* [MODULE_DESCRIPTION("Led platform driver");9 o  ^; p' V# P* b4 D
MODULE_AUTHOR("Tronlong");
) t4 M' I% s, I+ H( m& ]MODULE_LICENSE("GPL");
& v9 U+ q$ g# O% m' g8 g% y) ^) m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 08:29 , Processed in 0.040724 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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