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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. S/ [3 o) r# l  U
#include <linux/init.h>" m7 e& v0 F: i7 p3 C! F
#include <linux/module.h>
* D5 n1 b1 J# f5 n: W) Q* I#include <linux/kernel.h>
: b* Q8 X5 M8 c+ J0 }5 Z  r#include <linux/types.h>
7 s+ @( y& n4 p1 O+ i#include <linux/gpio.h>& h( L+ L$ u) I/ S8 x& \/ P
#include <linux/leds.h>; s/ A8 g) e# D
#include <linux/platform_device.h>
9 f5 @  c1 S. T) s2 Q0 K; i3 p/ X
6 K$ p' s1 Z0 W3 J#include <asm/mach-types.h>
: r" ]( K- C* z. J2 q* d* b7 Y7 Y#include <asm/mach/arch.h>3 U8 D( {* ~( @
#include <mach/da8xx.h>8 S0 S2 u4 t8 r
#include <mach/mux.h>; a! c9 G/ O- B$ O
% p! ~) B9 Q; ?! H; V8 j. f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) d. A1 b' t: l5 q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 g( s: ~8 K# }# }2 S; v+ q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. q) u- }5 i  R% q8 ]+ P6 x3 |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 u0 c7 P0 `% O' M) n' X

" [' P5 U3 H3 F. t: H. \6 e8 F/* assign the tl som board LED-GPIOs*/
$ ^: [2 V# y6 r2 h4 p* K1 j8 pstatic const short da850_evm_tl_user_led_pins[] = {
8 Q6 i  `  k" }8 ^4 n        /* These pins are definition at <mach/mux.h> file */
5 {9 H  Z  _6 y9 I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ B: f+ t7 J6 w- J$ }7 U' L0 x3 c+ N0 ^        -1
! {6 j, {+ @* V};
. K# B8 R2 M8 Z0 P# Y6 n; {1 n1 G3 \
, \$ a( z8 ~- \" \static struct gpio_led da850_evm_tl_leds[] = {
  F7 d$ V2 X- w( Z6 Y9 v        {
5 R) M& h! d' Z4 L; b' X4 f                .active_low = 0,
" I$ h& |8 o! a6 d8 J9 Q5 Q0 z                .gpio = DA850_USER_LED0,8 P. o- s) V0 p( v& Y4 ~
                .name = "user_led0",
: l* e- Z  \3 N7 C! C+ S5 o                .default_trigger = "default-on",
+ g9 Z8 }& X$ j1 O' ~2 h% f$ g8 e0 o        },( M8 @  c& x1 _
        {
4 J' w# W# }* _$ r& D                .active_low = 0,8 m' p1 e+ P" S& ?5 N0 Y; p- \4 y& x" @
                .gpio = DA850_USER_LED1,
5 `2 l) i1 x1 R- U( v* ^; l& S                .name = "user_led1",
" I: P, i, t* B" o: s) }                .default_trigger = "default-on",
. r0 s  ~$ d! \: ~        },4 o# `# K0 m# r$ M8 Y. J: j6 h
        {
9 i- Y+ g0 Y! U/ R% E8 U4 I                .active_low = 0,
! k+ q  F# f# D5 h+ g! |' @% Q                .gpio = DA850_USER_LED2,
  p/ p6 @8 E5 X0 B' y: {                .name = "user_led2",
1 a8 v6 M6 a3 }, }, ?. D) z5 _                .default_trigger = "default-on",( t( a" U( r. ]/ S
        },2 @" [# G! ^  o# g4 W5 L
        {
$ [" t8 s: @/ B6 f: u                .active_low = 0,
* N3 _6 b5 ^2 B! _                .gpio = DA850_USER_LED3,+ ~; s9 S" q( |. z, H# @* I: J6 n
                .name = "user_led3",& I" e" E- Y& \, j3 {9 G
                .default_trigger = "default-on"," c/ F# L+ g/ E% b7 Y2 \% M
        },$ T8 N2 l1 y/ k% |
};9 D8 k8 `" e2 j
8 ~- v1 }1 F5 w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* G% Y1 ]3 B7 \& B$ g! G. }+ ?  \        .leds = da850_evm_tl_leds,
$ \! S- x! t  H  y. H" i$ H/ ]- x- v$ r& C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 t5 e8 m6 L8 n* L+ `. B% `- S
};. t4 T: r3 M7 c6 J" t

- p$ k1 V0 L8 m6 T. B9 [# dstatic void led_dev_release(struct device *dev)
7 i$ I! Y$ W8 ?' ~- ~{( ^2 c2 R9 z6 ?, Y7 H' \: c( s
};
( T- y- O8 \* Y: m! S! X/ i4 P! u4 C: ?9 D! O# f4 R% b/ J
static struct platform_device da850_evm_tl_leds_device = {- D, h- j8 r4 {7 v3 j7 r  y  Q' ~
        .name                = "leds-gpio",
  J) q8 Y7 m6 h; v  M        .id                = 1,
! v/ u' ^+ M1 h% m. U! ?/ C. i        .dev = {" I- x& d8 l" J# p2 V/ ]! Q
                .platform_data = &da850_evm_tl_leds_pdata,
! e6 H( K" @$ c: c  S6 q4 m                .release = led_dev_release,
' H* k" k7 W4 z+ `; g2 k        }
- |6 P7 |9 O) ~- F};- Y8 o) \: q( C5 q8 ?# V% {) `
5 m& V  W* ^7 A) S, P
static int __init led_platform_init(void)
9 S. ^. [$ p8 D  }7 V+ F{
5 o& F  j# r: ]. J6 b, `& {        int ret;
! K7 b7 p: D$ r, e% G#if 0
% [* c3 Z% W/ y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ \' T. f8 v& ~) F" i. {' n  H        if (ret)
( [; I9 ?/ G. `, E  U& {9 {& {, N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# t6 o8 }2 H1 R' C  l! \                                "%d\n", ret);+ o  Q; m. T' f& Y) H4 P( U
#endif
" h4 Z  ^) Q* s1 B        ret = platform_device_register(&da850_evm_tl_leds_device);9 F& B# C/ Z6 q5 t1 u( h" P
        if (ret)
- }7 o" x1 p9 {/ I2 w  h9 Z/ v, W. y                pr_warning("Could not register som GPIO expander LEDS");& }; C1 u7 t) }4 v
        else
$ ~% R% m, G9 v                printk(KERN_INFO "LED register sucessful!\n");' Y9 u& T' p5 S8 k/ C0 E

% U+ Z$ F' f& c! e1 q        return ret;( \/ k: T; V6 t* w7 d. M
}
* M8 F. ^8 ^1 p7 h% K* ?5 i3 N! R2 ~
8 g; ^5 S: `+ F2 @5 fstatic void __exit led_platform_exit(void)1 u9 \: B2 E* k1 K; k* _" n
{- m$ p; _" D" @' P0 P& ~: F
        platform_device_unregister(&da850_evm_tl_leds_device);
+ L3 b$ _- L( {+ |7 X; i% w" A7 d7 ~' J5 |- L" t. n) T
        printk(KERN_INFO "LED unregister!\n");0 ^7 S, w8 m4 D
}7 I# |; X9 U3 w9 d& k
+ w* b( d7 Z3 o
module_init(led_platform_init);
4 V/ f* D# N: q1 x9 d7 ~module_exit(led_platform_exit);
3 }) C4 P3 @; J4 a' u3 t5 x$ X
8 |  P8 u5 F! B7 b2 _MODULE_DESCRIPTION("Led platform driver");
/ }0 N$ E9 @6 uMODULE_AUTHOR("Tronlong");
$ }* \; c. l3 e+ Z1 SMODULE_LICENSE("GPL");
3 G% h% `7 s. T3 h/ E7 [- o$ m: J; e7 R$ h* z6 e+ P0 i) Z/ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 20:05 , Processed in 0.039995 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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