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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) `4 n' Q0 Q: }% Q4 n3 y7 k3 [; V#include <linux/init.h>
, G* x* b- e1 b; V#include <linux/module.h>
; T" v$ o9 H* T! m+ ~; u  G; D#include <linux/kernel.h>
$ i* V/ Y9 F  W! _! x#include <linux/types.h>
' d8 f9 S" ?& U! N( l* U- G# w5 k#include <linux/gpio.h>6 L" n. X' j9 @8 M
#include <linux/leds.h>
( a2 m! ^, M+ Y2 ?$ y3 p) I) h( E#include <linux/platform_device.h>0 K/ J/ r: D4 L+ @) D9 L" ~5 {
( Z# `7 {% }* r2 U
#include <asm/mach-types.h>
8 M; L& ~  ^; ?# H& Y9 Q* M#include <asm/mach/arch.h>* w# g% q$ s* F: R
#include <mach/da8xx.h>6 z& a" d' k2 p* H' y9 {0 u9 k2 S, |
#include <mach/mux.h>% D+ u3 p& K9 @5 K4 ^, W
( R' b5 ^4 a' z2 t" K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 a1 S1 \. U; @. G5 X; h2 j, F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 \/ F6 T7 ~5 D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 b* k7 W6 S$ W" ~3 {* w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ U2 E' J% e9 V: E! [9 x. v5 u) _  U  U5 y& ]
/* assign the tl som board LED-GPIOs*/4 n  z: Q3 S6 y& ^& d- ?
static const short da850_evm_tl_user_led_pins[] = {
; ?0 V' b- w7 H" ]        /* These pins are definition at <mach/mux.h> file */
8 H0 i0 }& g3 S2 q/ Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 n' S' @# k; K% W
        -1
  k6 k; _$ a7 `4 H6 @5 \1 @3 ~6 E};- U" I6 Q* E4 P$ y
+ O2 Q3 \& W' B, h! ^
static struct gpio_led da850_evm_tl_leds[] = {9 j& ^: i! _/ c9 P; R0 B4 h& M
        {! n# O% Y: R0 ^1 E! H# L
                .active_low = 0,  t6 d0 G. `  p
                .gpio = DA850_USER_LED0,! \- y$ A6 I0 O7 ?
                .name = "user_led0",
, Z. m5 j, G5 f" ?7 f                .default_trigger = "default-on",) o1 P# c! h  a/ P; F7 e
        },; ]; u+ [8 |0 F7 r4 `( U
        {
2 l  z$ ]! n1 U3 }. ]% V                .active_low = 0,4 h7 @, n$ R! J2 M
                .gpio = DA850_USER_LED1,% p" f1 L# O: A1 a0 c
                .name = "user_led1",
) G4 L; I8 {8 B* B# U% }0 {0 _                .default_trigger = "default-on",
7 d! {: F. }5 C- g) |- r        },
+ s: b- F- P% Y* O+ I        {
- O& V  d3 H! a5 z/ M  \7 ?* o; X                .active_low = 0,
" |) }3 t4 p+ s+ ], @; k                .gpio = DA850_USER_LED2,7 P$ z- p; |$ R
                .name = "user_led2",& C9 k% x7 b  M, W/ Z& T. [. _* A
                .default_trigger = "default-on",: R5 J* v2 g$ N6 D5 P, x$ Y
        },
; f# D$ H; [, A9 D7 r5 u        {/ ^3 e# ^* L* Q' _1 \3 ~
                .active_low = 0,
4 h# O/ x/ }% }5 s& h                .gpio = DA850_USER_LED3,. g4 e+ L) ]4 I! X. q: k
                .name = "user_led3",, k, W1 m% b: P2 Q% l/ t, A
                .default_trigger = "default-on",0 a% G: Y0 k; K% B  P" T; i! e
        },
' Z3 R* B! V$ _' o- x};9 ?  G& J! W& K" o( L6 y
/ k% P+ b( \/ l8 [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ |7 g  a/ S+ z6 y6 X3 \        .leds = da850_evm_tl_leds,
) b9 [3 P9 r& _. _7 f* D% {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 v) z3 p% M' X1 ]% O};
) S2 [8 u' h4 t: z% ?' T& }3 f
1 k, P$ @6 \/ S3 k  Jstatic void led_dev_release(struct device *dev)3 R$ `" w* X5 R$ Q4 |# C) F' h
{$ C+ v0 C/ h0 j- p, {3 \/ N5 d, b
};
1 @: n. P+ e/ e6 I( D! ^1 U
+ g* H, t+ S3 F) W4 v, ostatic struct platform_device da850_evm_tl_leds_device = {( ]8 Y2 @, l+ p% R5 d' C8 G6 Y
        .name                = "leds-gpio",
& J7 B2 B8 h" [  E/ ]3 c# ]  C  {1 x        .id                = 1,- f3 V' p" X0 i1 T+ R. p0 }
        .dev = {) r. }! K2 b% S1 ~; x' L' l
                .platform_data = &da850_evm_tl_leds_pdata,
0 T9 }1 l/ |4 F9 M) s; y                .release = led_dev_release,
9 F$ J2 O5 `' E+ [9 m( U" _' q        }
* R3 Z" C; v& {( R; t};
  f9 ]' ]" s9 Z+ ?3 R3 o# G; l$ v+ w: {
static int __init led_platform_init(void)& ]- V+ V" S0 g- B+ C3 ]9 G
{
: X/ Y( _& {5 N; ~( ^0 N/ `: Y& k, Y        int ret;  C& g" F7 [2 T) i' B/ P
#if 0
) q& u3 o/ H6 q8 j2 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- g# K& i* Z/ u0 I
        if (ret)9 @& C! s, p, \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  n/ f3 j7 w+ M0 @! d$ y- ^
                                "%d\n", ret);% E' F) S/ e; M2 G( k& \, X5 v, \; ?: ~
#endif
  U% g2 Y% U4 |5 X        ret = platform_device_register(&da850_evm_tl_leds_device);1 v( L: P1 y4 Z6 ]; T* R' s% n
        if (ret)
! h% `" S4 F9 L9 Z  H                pr_warning("Could not register som GPIO expander LEDS");
! [5 x/ h3 l- p) Y. X        else  o1 O! u8 P8 q4 x9 M+ `
                printk(KERN_INFO "LED register sucessful!\n");
0 X$ U" M) z) f
+ P& I( T  v, r' ~- W- A, m        return ret;
8 \& F; m! W% j# r. h}; R; Q0 [5 ?, h' X3 Q

; @0 S$ f) X8 N/ b) ~static void __exit led_platform_exit(void)# o- O+ h2 ^% ?# H6 T3 u
{
' m$ I$ K; Q/ ?+ i        platform_device_unregister(&da850_evm_tl_leds_device);3 {: ?0 \1 t1 A. P
: d: o  `+ @, G8 B8 l2 q& q# @
        printk(KERN_INFO "LED unregister!\n");+ A- X3 O# |) J( h$ L# \2 e
}
6 ?. B" D. n: t7 @! E
$ ]$ d7 M4 R! x. r5 c9 gmodule_init(led_platform_init);
7 \7 M' Y' u! V% J  [' {module_exit(led_platform_exit);1 K, F8 c* Z# e6 m0 b. J) A0 Z
5 z' b7 `' Y. E) Z2 X/ g# d
MODULE_DESCRIPTION("Led platform driver");
) _/ B; d3 M. G/ g# H! k0 c. bMODULE_AUTHOR("Tronlong");
. e& g  ^# b* o) ?MODULE_LICENSE("GPL");
" h' [! P9 {( H  x  D9 I6 i! g; _: N; I2 O5 H# l$ T. C5 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 05:24 , Processed in 0.037271 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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