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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 c' ]8 N  R1 s5 \6 k( _# d9 j5 w#include <linux/init.h>" O( Z7 f& B4 k; |* L' h3 L" ]
#include <linux/module.h>6 Z9 z6 H& s$ u9 C% w$ D9 y4 `1 `
#include <linux/kernel.h>1 i3 p9 {4 B0 Q' @/ q( L" b$ i
#include <linux/types.h># `' V7 H) A* c0 {9 @4 X
#include <linux/gpio.h>8 q3 n2 _/ V0 M! z7 H( a  l
#include <linux/leds.h>; E$ P* r) E1 s8 J4 t. V
#include <linux/platform_device.h>
; z: }$ i: V/ X- W) v0 \' S2 R; B) i
#include <asm/mach-types.h>, ~7 a9 J+ |5 _- |/ _3 N  y
#include <asm/mach/arch.h>$ [& S4 ?7 U5 q: O: W
#include <mach/da8xx.h>3 O3 T( P/ S5 Q$ _) i; b
#include <mach/mux.h>
. R8 s+ `  m6 ^  m8 V8 |+ d( `1 d; j: T* p7 q% s" D' s8 l; g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* i4 W# N7 O( N8 f7 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 l! {1 F9 o* K1 f' `; R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ o/ h- s3 @$ s  A, G- x* [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  |: B1 G) M. @
# F% z/ m$ F3 {' r  c7 v/ j9 V/* assign the tl som board LED-GPIOs*/
3 }4 x/ u4 k/ n% C" g( c, sstatic const short da850_evm_tl_user_led_pins[] = {
4 x; g2 }( Y- K& x        /* These pins are definition at <mach/mux.h> file */' X$ g/ L0 h. I+ e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" [* c  l5 y4 G3 _/ _        -1+ H2 X9 r8 }3 a1 a. q' i+ o
};3 W9 W7 t$ l1 p6 m5 v

& P# F! x! B7 P" `8 C: i( G6 I) }' Y& a& Dstatic struct gpio_led da850_evm_tl_leds[] = {
! z) K# [$ Z; P6 X( f        {
+ e. h7 G- }9 l! ], ]( }2 ]                .active_low = 0,
, [5 t5 t4 ]# S+ ~8 z0 D                .gpio = DA850_USER_LED0,1 ~" x; U! p& K( O! j
                .name = "user_led0",
5 O# ^8 r+ `6 }; f$ H                .default_trigger = "default-on",3 w" ?  M9 p8 B# S
        },# n) n$ a' Q& P2 s
        {
% L* ^, k( f# x. U3 t. n2 l( ~                .active_low = 0,. G; o8 F$ \4 q$ P6 d9 [
                .gpio = DA850_USER_LED1,
" b8 `5 l+ p) ?) ^, j, ]# b: \, I                .name = "user_led1",
' U7 p  z: d, p4 f. B                .default_trigger = "default-on",
7 K0 p, ], r: P' E9 K+ O! }        },' U( ^0 h5 C1 Z! o3 _
        {! D8 A4 y: a8 d5 q2 h
                .active_low = 0,% l7 ?0 O, n+ ]$ D2 F& Z
                .gpio = DA850_USER_LED2,9 `: ^  }9 b* D
                .name = "user_led2",4 G( j5 m: z/ q- L! z1 q$ A
                .default_trigger = "default-on",
7 U% }) Y0 r4 f5 @        },
! y( m1 ]3 _" m7 J: `' t# D7 \        {' s* c& t. B* f0 W! u
                .active_low = 0,8 S2 z& O3 E5 j, f8 t% p  u2 ?
                .gpio = DA850_USER_LED3,/ V4 C# {. v$ a( N+ H
                .name = "user_led3",. V; ]  i( \; J
                .default_trigger = "default-on",
5 J' `. |! V" M8 U( s/ g        },; R9 G- M. v8 f/ N& _
};$ l2 y1 W3 l( z3 ~( R

7 y! x& L. N* h0 ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# h1 G# O4 {* [: Q: I        .leds = da850_evm_tl_leds,
; C* I/ g, ]# _, f# |, h+ ~" t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," L+ I$ P5 F/ o" G+ `3 a
};, U- ^& l2 B6 s! X' Z  H/ T2 g

6 R8 R) p, C1 estatic void led_dev_release(struct device *dev)
/ d* d0 q: k* ^4 A{7 l+ }- T# I3 s
};% g. O3 @* s0 r+ |$ r
: z7 e5 u9 ~) H! A! n: q; `2 F
static struct platform_device da850_evm_tl_leds_device = {2 Y  l& i/ v/ z  i+ Z6 W
        .name                = "leds-gpio",
1 Q  }6 D3 W: p" q9 q        .id                = 1,8 R5 e" I# P8 _
        .dev = {' G  J1 c. R4 C+ ]* L: `( b. q  h- f
                .platform_data = &da850_evm_tl_leds_pdata,
4 C* e1 B# }* M  H                .release = led_dev_release,
% i6 P- b# X: Y4 _6 m( e        }3 [8 `4 I$ K3 Y$ I. s, Q' F/ a$ ^
};
( M/ n% v7 E6 Y% ~9 \$ T! ^
4 z! `( i$ G) U7 c# k* e( _static int __init led_platform_init(void)
0 g1 p% j+ c, y6 _{7 s' d, a5 c: z9 A: B4 b5 i
        int ret;9 o( ]$ F6 }* u7 H/ I" d/ \
#if 0
6 |. Q4 [8 B# S. ^4 U) \9 C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) x" W1 e7 f) m& I) }
        if (ret)8 ~- P9 H6 B5 c- ], \9 `" N! a# d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; ^9 U. N* s7 ~- Q3 r( O
                                "%d\n", ret);
: Z2 ^5 V/ E. l; L+ d/ \#endif0 H' P, L+ Z* b, S: _! u- M. ~
        ret = platform_device_register(&da850_evm_tl_leds_device);2 T7 D5 M6 Q2 U% B! I
        if (ret)
  g: M$ N6 Q! v                pr_warning("Could not register som GPIO expander LEDS");
& G1 V; [$ n$ \$ Z        else6 n2 M! w. G: y! F
                printk(KERN_INFO "LED register sucessful!\n");) n# ~- m; d2 P& p3 N; X

4 s' \* G$ A' J1 b( o* v( [        return ret;
, S& ~/ d) p7 B% V/ w" X! e9 _}1 d+ w' U' _# s- {1 l
8 h, J+ L1 n% u% E
static void __exit led_platform_exit(void)
0 O! u% T8 Q2 N1 C1 c9 H# ~: w1 t7 a9 D{( n* e6 u; ]. p* K/ `2 ?
        platform_device_unregister(&da850_evm_tl_leds_device);4 O) G* x& C" P$ G8 I

- e3 h- J$ @  p$ {" K        printk(KERN_INFO "LED unregister!\n");
* X4 g. s1 t- ~  y5 J) I+ b" M- q}
8 R6 `  G- J6 Z! M" _$ u& z7 r% N7 r, ?0 o+ U2 i, ?2 g
module_init(led_platform_init);
  u# r) O0 h* c2 ]) p4 pmodule_exit(led_platform_exit);
0 Z8 y2 R5 l# T8 m5 T. O6 Z1 e6 ~3 g$ l) [
MODULE_DESCRIPTION("Led platform driver");# j& g5 W; ~2 m" a2 I: [" P
MODULE_AUTHOR("Tronlong");' K0 u: _5 ?5 o/ C: h( [- v4 p
MODULE_LICENSE("GPL");: B, i. T% p8 y8 m

0 ^. y+ E3 p/ Z% I) o. g5 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 13:01 , Processed in 0.043848 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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