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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 d. {+ X! [% P# A$ U" K, \- A#include <linux/init.h>
: s, ]3 ?& Z9 B1 V8 u  r% K( b#include <linux/module.h>
7 w, u% Z  m, b! J+ s#include <linux/kernel.h>9 I; v& F3 j' S6 G) E
#include <linux/types.h>6 C" n# k5 C( T( p  k
#include <linux/gpio.h>
, v1 w/ J5 H5 A#include <linux/leds.h>
) z" s7 @7 I) i6 R9 L7 q$ q#include <linux/platform_device.h>
% i$ d; U6 I/ {. L3 I
, G  J9 i! D# X5 m; n+ Q" L#include <asm/mach-types.h>
" b, M) b* Y9 e# x#include <asm/mach/arch.h>; q3 }( v! v% \/ B* f
#include <mach/da8xx.h>
9 u* N0 ]- [/ K. G1 B#include <mach/mux.h>' w6 v+ v! f+ w* V. g
* A, o2 z4 ^8 r/ _6 t6 w; h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 |# j8 P# e0 T, a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" C4 l9 l4 [: d4 V+ G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# Y/ Z( t9 W% R' T) y! d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) t! K# d' G- r- h+ P! }" E

: t2 u" {  C7 K% s$ v  X/* assign the tl som board LED-GPIOs*/
9 s3 N- O9 A9 h$ x7 [' xstatic const short da850_evm_tl_user_led_pins[] = {
+ }- P1 ^: {3 H# C( U5 T! E% N( n        /* These pins are definition at <mach/mux.h> file */" q, `2 [8 H4 t5 p, @, Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, Z6 E/ F# c3 Y2 s' A4 D9 ]8 ~/ j        -1" p2 M1 ?4 K2 S. w2 K- y4 t* N
};9 X6 B# I7 d$ j# P0 b
# p& X; o5 w* S
static struct gpio_led da850_evm_tl_leds[] = {$ h& l7 M1 Z' t% _, A. I
        {& l' _' l2 E8 @9 b6 v9 |: M
                .active_low = 0,2 F2 B+ p& Y. }. o
                .gpio = DA850_USER_LED0,1 [) a, u& h& G7 Z
                .name = "user_led0",
- E; y' e2 C% h; e) b                .default_trigger = "default-on",$ ~4 H5 N3 M, D' Y+ i$ m
        },
) R+ B7 y. w# {$ u# {( K        {
. u! {+ a: {- P  q: `$ w                .active_low = 0,  M5 i0 S6 c1 p7 z5 P
                .gpio = DA850_USER_LED1,0 w" `! w2 Y) Q. M
                .name = "user_led1",, }/ L' s9 l% t* ^
                .default_trigger = "default-on",
1 d9 I# D& a  R# H% A        },( E: a' B' G6 U. ^
        {
# ~* {3 @/ y" _6 f, T                .active_low = 0,
) M- E9 a2 G: z' ]: [                .gpio = DA850_USER_LED2,! B, D5 n- h9 Y( G
                .name = "user_led2",0 u9 T' r+ F% m! Z* p9 V& X! o
                .default_trigger = "default-on",' j: f* d* d5 Z: u6 b* r; b3 g, {
        },: K" k6 `7 \- d* n/ `) P
        {
  J+ {. M6 W% u# Q+ Z; N3 |                .active_low = 0,- s3 S' ^+ G; ]  |) o, X
                .gpio = DA850_USER_LED3,
4 ^) m: u' `6 {/ D" X5 n  R0 Y, W                .name = "user_led3",
* X& e& X2 H! b' v1 ~                .default_trigger = "default-on"," @/ q4 {2 r$ w3 G
        },
4 y( u' ?9 d8 Z! D2 c$ {& {% Q};
# c( _5 A. x. z7 u, b. m7 ?* j
5 F# B( w! n" o/ y  gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: T4 {  ~# ?; C/ ?  e        .leds = da850_evm_tl_leds,5 e: O  B. h2 z# T  M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 |# l8 e5 R7 g};1 n4 x5 k  H5 x, W! g
/ e8 l7 D7 X. s! M0 E
static void led_dev_release(struct device *dev)4 ]  ]% X3 i( z$ g; Y- g
{
, j. c- E9 Y6 d4 T' x: }};+ v) f7 V1 E- B3 F
& o5 a1 G9 C( }9 o' X
static struct platform_device da850_evm_tl_leds_device = {
6 `3 P/ Y& c- N7 A8 L& a        .name                = "leds-gpio",. t+ c: }, L* e* b  r6 b
        .id                = 1,
# t  @6 }! {. p5 G7 w9 }        .dev = {8 U- I' x2 O8 d
                .platform_data = &da850_evm_tl_leds_pdata,; q) ~  `0 B" k( Z4 S
                .release = led_dev_release,, F* ]! ?# T: j9 E3 r, b
        }
! {) L4 e" C" |; M. `/ o* X8 F6 Q};5 P! s% o5 e+ @

+ W2 I- T# u4 s# ?5 j/ Gstatic int __init led_platform_init(void)
( Q- }% ^- Z; w7 u8 }& e4 U# f# I{/ l; o$ ]; h8 e! S: h! Y" T& w8 Q3 B
        int ret;
0 ]* i' }( n& f% A$ C) v#if 0
9 b' S) X) S2 {0 b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% T+ y' Q5 t& m4 X
        if (ret)9 m/ r" t. `8 u8 H9 p- \  v6 S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". u) t2 R4 B( n# x
                                "%d\n", ret);4 O6 z& q% W1 O: k, b  |
#endif
; g) ]4 W" ^% G/ F5 W        ret = platform_device_register(&da850_evm_tl_leds_device);
0 y$ L% A% E# Z        if (ret)) X* H  A/ u! {6 v9 z$ Y3 a. I
                pr_warning("Could not register som GPIO expander LEDS");- h5 `' c9 S/ T* Z3 C2 {( r' F1 N& l
        else
7 h! H' [8 q& G                printk(KERN_INFO "LED register sucessful!\n");
& |' o" i4 K% h+ {% {5 A# S- |1 x! z3 F8 w4 K0 k
        return ret;
" G$ j: v& `) ^9 z0 }( z  Q# F}
+ g! {/ m$ C: m  b2 l
/ u: o% }' {7 B7 pstatic void __exit led_platform_exit(void)0 Z' q( \% v, ]; ]/ A
{5 p1 R) i* Z2 O( H1 j
        platform_device_unregister(&da850_evm_tl_leds_device);
! V3 }& l" }2 S( d- W" r" C" L, ]' Z) I$ H$ s$ {
        printk(KERN_INFO "LED unregister!\n");$ M4 L" K! t9 T+ H
}
: M4 i% o' |' v$ a" j
( T/ |: G0 m) y) {- Bmodule_init(led_platform_init);
/ L) p" Z! D" l! |4 i# ~3 k8 Wmodule_exit(led_platform_exit);
9 F; K" [; ^1 Q7 M" |8 h8 c9 S: D0 n( P: ^
MODULE_DESCRIPTION("Led platform driver");% y' M* [1 l& E3 t% O3 B2 r
MODULE_AUTHOR("Tronlong");# c, B3 i: n5 M7 R$ I
MODULE_LICENSE("GPL");! d- e) E; W) ~6 q& a

7 [! c% W# l% m; k, |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 12:48 , Processed in 0.043410 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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