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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( L0 G( b* R% @/ Z% B+ T4 q( @
#include <linux/init.h>  t; o9 A0 L9 p2 M* y8 \
#include <linux/module.h>( k& {5 D& [, b  J( W2 S( Y+ y
#include <linux/kernel.h>0 [* j, M* X  k- v6 r6 O
#include <linux/types.h>% Q3 k9 G2 [  b6 Y! ?) I
#include <linux/gpio.h>
, t/ S0 S# W( v# W: Y( A9 ~#include <linux/leds.h>0 y1 Q& u- a4 `% q* }& ^; W
#include <linux/platform_device.h>; L% T* N( _  S3 P) v# d1 M1 `2 o

9 E2 B' g9 l% y& p7 ]  m! ~5 ?#include <asm/mach-types.h>
6 v, a6 u" p9 r6 Z#include <asm/mach/arch.h>. T2 O" A+ d  x6 V5 a+ M" d  V0 W' ^
#include <mach/da8xx.h>0 G$ F6 X5 d5 y: [$ I# h* {
#include <mach/mux.h>4 m+ }1 W* c1 p0 Y4 M- B

3 r% N1 |2 v3 P; v! M8 Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% K. ]5 Q9 u8 e1 T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ V8 _* @  s! [4 }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 K2 c- S& O9 j& n: j4 w$ w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 k5 q) m3 m+ A8 @

8 f; y8 s, L/ |" D4 T/* assign the tl som board LED-GPIOs*/  ]# f1 L8 s8 O  d9 I  {7 i
static const short da850_evm_tl_user_led_pins[] = {
# U% ]2 b% z  j$ o% F- \        /* These pins are definition at <mach/mux.h> file */: J9 C  X9 c8 C/ l. G7 I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# a, d6 }% k$ K" T! |
        -1/ ?: w, A+ j: Y" f0 y& I
};3 i* c' T4 ^" Z: N% Y8 d

/ O: e) ]& [0 C1 Z8 {/ q' ]3 estatic struct gpio_led da850_evm_tl_leds[] = {
+ x, x2 @/ ~0 I6 f: Z        {" r- ]+ n1 f2 H: o6 K9 }' P, d6 e
                .active_low = 0,- a& J( O9 R5 s# e& W6 ^- ?
                .gpio = DA850_USER_LED0,! I/ a, V- x9 l7 q1 o
                .name = "user_led0",+ F# a. A1 S+ \; A8 m9 h
                .default_trigger = "default-on",) @3 j( f- m. y6 W* e$ {
        }," L5 W5 g; @( M( ]5 B5 n
        {6 Z1 ~8 H* ?5 X5 V. J3 ]4 f
                .active_low = 0,
  x  h" \3 R8 w$ k1 ]/ ^                .gpio = DA850_USER_LED1,. \  ~: j; `. G1 F8 n: |, E
                .name = "user_led1",6 x3 @/ b* C0 x6 o- }- W
                .default_trigger = "default-on",
% P3 J5 n( V5 u; B4 G( n) F. V' w8 O        },, ~9 Y" m) z  ?1 v
        {$ X8 h% o) R; ?# t, z
                .active_low = 0,
' M' g1 S  S: o. M$ T4 {3 q                .gpio = DA850_USER_LED2,4 Z! ]$ i+ G& L5 R* z
                .name = "user_led2",
/ w9 h) x6 ]. L2 d/ ]                .default_trigger = "default-on",1 B& k/ Z! V8 B2 W
        },, R% t4 i+ v6 b; K
        {: L* \) C# |2 M5 B2 q
                .active_low = 0,' G4 O1 I& q- I# C
                .gpio = DA850_USER_LED3,
) c4 ]: F7 p) N                .name = "user_led3",
. E. i0 l- D4 k6 `                .default_trigger = "default-on",& q4 s7 x% b5 q! X9 ]& s
        },
, D, B' f; r9 T: A: O! L7 |; F};' y7 S. S$ d6 k" d( d: U
* X' N* r6 O6 j! A7 M/ R& M, J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* J( t; O: \) y/ o- `/ p6 k6 c        .leds = da850_evm_tl_leds,
; `" v9 T" U) ]9 D. A; O0 @  B. v        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 {7 U) i( p$ D7 {, S( B* C. {};
1 r) J. b! \* K" q. t3 Q9 [
! }2 Q3 Y( T9 b" Q* J! rstatic void led_dev_release(struct device *dev)$ ], ~1 O2 z' E/ I+ P6 w% M8 g/ K
{
9 y8 T* Q- u) {: P$ [2 M};
7 u7 u/ I3 [- R" n& V; U% @; V
' V" k; r  y* M+ M9 lstatic struct platform_device da850_evm_tl_leds_device = {
6 ]. K! R1 W( J, Q" u' s        .name                = "leds-gpio",7 U6 w' e; l! g) r  z( }- G' N
        .id                = 1,3 n/ B3 e& p  v% C
        .dev = {
) M0 t/ `8 s6 z( d                .platform_data = &da850_evm_tl_leds_pdata,& b4 @- A! Z* o( Z
                .release = led_dev_release,  O& C  X6 V0 ~, I- b( D* ?, E& P. ]
        }
) e+ h1 R/ G$ b9 p};
2 Q) p0 G- ~4 N* V  I7 Z4 e, a& p2 ^# g/ e) O* `
static int __init led_platform_init(void)
) V0 B% h0 y5 J" g( O' x! J1 Q{
3 m: q0 q5 ]! ~5 d) l        int ret;
; ?3 s4 k( ~: h5 v6 r+ i#if 0' L8 W  C) p( S% m) W) }6 Q% X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 t& e  ?1 U( s) I        if (ret)" Q4 X% Z! n# b. P7 i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 v! w# }+ b6 e7 |, O                                "%d\n", ret);; {2 J) |" p( A3 [& _
#endif( e9 j9 F9 q4 z' R( D
        ret = platform_device_register(&da850_evm_tl_leds_device);) B0 x% t! ]- x* z0 W
        if (ret)
$ L: _* G# f0 V                pr_warning("Could not register som GPIO expander LEDS");
# t3 T; k; a% S3 P( Q" V        else
" U: @6 B4 L" f+ q0 Q1 Z5 c  F5 G7 ]                printk(KERN_INFO "LED register sucessful!\n");
2 Y3 m4 M7 Q% b- ?! r) k
1 a3 _, q1 X$ W, c! l        return ret;
0 A% e) Z' r7 Q9 y: ]5 t}
% k4 v7 u3 G3 ^1 s; I& w9 G) Q! y
# o( a6 s9 B8 K4 s- G+ F8 N# X& [( {static void __exit led_platform_exit(void)6 z( k1 o# @, w1 ^/ o
{1 _' w5 r9 O( e8 S, k3 K
        platform_device_unregister(&da850_evm_tl_leds_device);* _8 i+ Q! W1 x; ?

) j" H6 @: |# M  }: u; W6 }* e6 u        printk(KERN_INFO "LED unregister!\n");& q2 S2 \6 [; u7 ]' {0 I0 t
}2 R, I; F1 S- F& a8 P0 P. W

% h# E) n( y( [+ z4 U$ omodule_init(led_platform_init);
% m! Y7 t( p; T; t7 ]! Kmodule_exit(led_platform_exit);0 _; g  K: Q+ d/ v1 t

! Y. G2 s2 J. p4 OMODULE_DESCRIPTION("Led platform driver");
: H6 E! D" k1 dMODULE_AUTHOR("Tronlong");# s. N1 d  f) i0 w7 b3 c  f
MODULE_LICENSE("GPL");
" _/ n# y3 q7 }) Q8 G) q3 _/ ?' h6 G) t/ d3 `3 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 08:57 , Processed in 0.039799 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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