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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ P9 i6 n& E) y! r+ ^5 g#include <linux/init.h>9 |) H) D& o7 R
#include <linux/module.h>
0 }0 B0 e0 F$ s4 x0 F4 h' k- _  R#include <linux/kernel.h>
2 W  F; ^" Z, ?( Y5 K#include <linux/types.h>
! @3 Q) K* G$ E) C' ?! w#include <linux/gpio.h>  r1 @' M- r0 C- ]4 u
#include <linux/leds.h>" y2 E+ ~4 |( X! Y
#include <linux/platform_device.h>
- E. n4 P$ C8 Y- c& Z3 N7 k- ~9 s9 f, e+ l7 E
#include <asm/mach-types.h>
8 C1 W+ q+ B1 d' V! W* g# A1 c#include <asm/mach/arch.h>8 t* B# Y0 V; i8 |, D
#include <mach/da8xx.h>& `5 q; B; [: Q6 _+ L% U& h0 e, }! u
#include <mach/mux.h>
' e* J3 P' Z( B4 q, |$ H# ]! n: J1 E1 S
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 O" S8 F1 j; e% H$ X8 S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' e1 ?8 S. F/ L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 J% z8 |9 d2 |1 S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 \/ G% m1 }9 Z1 x+ F
" b; s8 H! j- h* Y
/* assign the tl som board LED-GPIOs*/
* u' d6 D6 `2 Z6 Q4 a) e6 c& istatic const short da850_evm_tl_user_led_pins[] = {2 X, U3 O1 t6 e8 ]/ K6 }# E
        /* These pins are definition at <mach/mux.h> file */
4 C7 m8 I0 B6 e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ k0 a6 [, @7 c        -1+ X9 |# V4 [4 `% z0 `7 O* G+ b
};& c+ l7 h! K9 k( e! h

) Z0 v" y) U  ]1 X' bstatic struct gpio_led da850_evm_tl_leds[] = {+ ^% R2 Z( {: v% N* y1 z4 o
        {
7 g" b) f! j/ F                .active_low = 0,9 x. z  t. ~9 e; f1 d
                .gpio = DA850_USER_LED0,
5 {; I/ V& y* @' T                .name = "user_led0",+ V& I4 ]; Z+ t* p5 e
                .default_trigger = "default-on",4 H0 v4 R: o+ ?- Q8 R. `3 V
        },
  x$ R3 S9 r5 I        {: S' x0 a* h6 G. u/ O
                .active_low = 0,
1 A- @* E+ n' [/ t                .gpio = DA850_USER_LED1,* K$ W! |  r) B) |# K3 o
                .name = "user_led1",$ `5 _! C% _  c; W, Z1 h- @
                .default_trigger = "default-on",
6 H5 t+ F. c$ T$ d        },
' c/ h  B* V9 ^4 R        {
& b* Y) z: g. l' }                .active_low = 0,% U3 N- {, i5 \$ W7 H( Z
                .gpio = DA850_USER_LED2,
& V4 h0 W$ G8 N( [9 q                .name = "user_led2",
: B/ ]7 z4 i) ~4 k                .default_trigger = "default-on",( @1 w1 Y" b. q  J( o
        },
) z; h5 {' e1 Z& O        {
8 K) F' ~" Z, F+ F# K                .active_low = 0,  u- p- w/ S: m( h# l
                .gpio = DA850_USER_LED3,. W: I6 u6 z1 a4 B8 O
                .name = "user_led3",9 G2 n& e7 I5 [
                .default_trigger = "default-on",
* {( |9 d  j# c, |( t        },
1 h# c5 A# N9 f5 q4 g- s};9 `4 _. m, k+ W* p) Y4 m

" x) h, t- H7 `. y3 T1 i* Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 U: h. Z9 j# m
        .leds = da850_evm_tl_leds,
' A( K' \! @; A8 [+ O% U  L: k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 N' d% a/ a' _! O* D# [};8 b: I/ _. f9 I' Y5 E, Y9 U
8 P3 `# r% ^" n1 y! W
static void led_dev_release(struct device *dev)
: R4 |3 o) n' J{
- U5 i# G- V$ [; l};
! _( f* r% m; ]  `: h. H* \- F7 d8 }+ z' n. ]
static struct platform_device da850_evm_tl_leds_device = {
& Q' g- [5 l  T2 O        .name                = "leds-gpio",
9 L2 X" Z  a( R$ N        .id                = 1," K5 S; M2 o. m1 R0 h6 p5 }. b: V
        .dev = {
- u" p" A/ N/ K! T% W0 f                .platform_data = &da850_evm_tl_leds_pdata,  w7 H1 e8 c+ [, ^9 E/ l  L
                .release = led_dev_release,
% t# o3 r) O3 t. c' T3 B        }
- D, {! P$ k3 M% E; E$ F) P};( I0 V7 y5 h) t1 ~! B

7 ]% N/ \9 |1 dstatic int __init led_platform_init(void)
( T0 p0 }' u  |# ]2 M4 p) s, ]& _% J{
, L3 F+ A, f9 _* k6 _; b- B        int ret;
4 ?+ o! p& p6 I1 b: f#if 0
5 d( j: E" O( I' T" Z8 B8 N7 w6 [* m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ h( R+ w6 Q( j5 b- Y
        if (ret)
. e/ V2 X: p3 N! ?) M( j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; B: F3 A: d$ s0 e/ D1 P$ }: k8 i
                                "%d\n", ret);
9 U/ P) G) n; k- \- m#endif& b% l* T4 z% H. z+ `9 n) b& c
        ret = platform_device_register(&da850_evm_tl_leds_device);4 \  @  Y3 N+ u  O. e4 ^
        if (ret)
% r6 B) W! J; F/ n                pr_warning("Could not register som GPIO expander LEDS");
* |7 i/ {. C( h, K5 D' [        else
9 ]  C1 [" [1 R4 K2 Y                printk(KERN_INFO "LED register sucessful!\n");
8 Z; x* l+ I* ^9 J( y5 P2 V9 |3 G3 U. T. e9 ]( k! {
        return ret;- p! W1 X" f6 }2 E+ o$ h
}
6 R& m. b- c5 W6 ^6 }& k1 v* e# C  B# T: t6 V3 p' ]5 E2 Q* }
static void __exit led_platform_exit(void)2 b8 k7 \; y# M0 q
{
5 d3 I. p' P/ O; j        platform_device_unregister(&da850_evm_tl_leds_device);
5 D% [! P4 F/ h( W; M9 k' M4 b* ]# U) Q5 m  C" @: a0 L, h( l
        printk(KERN_INFO "LED unregister!\n");
+ @/ b5 b; _4 ^) Y" h, W}
/ D# C& o2 s7 g4 d5 F/ S
; V2 i4 Z5 u5 h; l0 l$ mmodule_init(led_platform_init);" S. A4 A( k% \! }* m( R4 v: C& \( z3 V
module_exit(led_platform_exit);
$ ]7 L0 b$ ^- }  }9 k2 ^# P; [# F' m0 R, F4 M6 G: u6 k0 b
MODULE_DESCRIPTION("Led platform driver");
4 g( q, J3 B/ z) t! L6 gMODULE_AUTHOR("Tronlong");
, y8 |3 P, f* T) L( f* jMODULE_LICENSE("GPL");
0 e# N, G/ ?! x* p7 `9 l  v# s/ O1 Z" M( V: P3 p( S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-26 09:29 , Processed in 0.040436 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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