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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% G% j  n& z8 k1 V$ `2 r! _# `1 m, m
#include <linux/init.h>
$ j& [+ \- S0 R  ?#include <linux/module.h>
7 D, ~/ G) c9 a" h7 W#include <linux/kernel.h>9 x2 ~5 q- \+ W/ {, G2 N
#include <linux/types.h>
0 T. r! F- j* D6 M2 a* @#include <linux/gpio.h>: C, a3 |& K5 C: T; W- U: D
#include <linux/leds.h>8 b* x- v. X; M3 J4 e
#include <linux/platform_device.h>
% E- Z$ l9 o% J& }# J$ w0 p
. s( Z! I: |; T$ G0 ~3 n' g#include <asm/mach-types.h>0 k6 y. c2 G0 [
#include <asm/mach/arch.h>
& x( h4 o8 h. M) U$ n1 a! G: \+ ?: l#include <mach/da8xx.h>8 u1 }# p1 e9 i
#include <mach/mux.h>
% R: }/ }1 N7 r) z' n! V% e* z) [7 w: a4 C9 [9 n, P9 N- c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! I# n: x# d8 }! v7 K6 ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 g8 ~: @) |. n& `) y% h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): v/ ]$ t' a7 l% U3 Z" y, l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 ^5 O! k2 i5 U0 k7 t" a+ N" M6 v; {  u0 a* x. J
/* assign the tl som board LED-GPIOs*/! W8 u* }% t! Y& a1 x! d
static const short da850_evm_tl_user_led_pins[] = {- m8 w4 Y0 W; c# E7 l/ {
        /* These pins are definition at <mach/mux.h> file *// n, m' u2 g) N: ~, v( }# j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 w! g1 U  X; i# f$ A. S        -1$ ]0 c) i9 }' {: a0 ?  z
};- c5 h, _) a- Y5 G5 O& e! W! d! a

1 g5 o, G1 f( [( C! O' ]  i* Y6 }static struct gpio_led da850_evm_tl_leds[] = {/ [6 w8 l/ b7 H( s# t7 q* S
        {, x0 F  B) }4 h% e* g( d
                .active_low = 0,
, ^9 D/ }5 O+ E5 v8 n- L                .gpio = DA850_USER_LED0,5 I% P7 l; a% k: n: N( N: c4 F
                .name = "user_led0",# a! C" v' L8 a* l$ L1 ]
                .default_trigger = "default-on",2 g  Y( l3 C  ]
        },
8 F& ^3 D; J! q8 y& L        {/ y! U* w; E" Z/ P7 N. |
                .active_low = 0,
6 K6 T- T5 e8 A5 W( K1 }                .gpio = DA850_USER_LED1,
5 q4 Z' k% ^2 _2 F5 v: t6 V                .name = "user_led1",
! s$ L$ o# w& e$ {- E* ^+ R' w5 T                .default_trigger = "default-on",
0 ~/ h1 X. `' i* o        },1 J0 n2 x/ }& W0 E& t( |" Q# X
        {
4 m- r* _# f6 e; x) W                .active_low = 0,
3 t. r) F" J, A! H' W  s3 {                .gpio = DA850_USER_LED2,
) o; {9 N9 o, v. q- A6 V! h9 x$ J* J                .name = "user_led2",
  r6 L4 H% N( d% \1 W                .default_trigger = "default-on",1 _; A) ?. e# P" c- a
        },, _3 i) j$ J4 K( [1 H) e
        {, r1 \2 K0 O, O* P+ @3 n
                .active_low = 0,3 Q; R, V+ V8 J4 p2 z; N
                .gpio = DA850_USER_LED3,
' |! P4 J& a& R! L5 q                .name = "user_led3",
5 w3 r/ V$ c" L6 R% ^' u                .default_trigger = "default-on",8 v+ Y& G7 _: s) h( z% L# z
        },; d/ m% _0 r4 m2 M; j4 z4 x
};5 C+ g4 y( b" n/ v& p1 P6 j% e

. H$ [: b1 V, b! B2 D; C- jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 F+ L/ G8 P" `. n3 s7 ?8 Q
        .leds = da850_evm_tl_leds,
5 t. J8 d$ h# ]/ Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( i; o" B: E2 A2 L7 F};
7 `+ r/ w/ t* T8 l5 l2 |+ V
0 D: q9 x3 k4 t! Q, c/ l1 U* Dstatic void led_dev_release(struct device *dev)) r3 ~& S( k2 }. b/ h; M
{
6 a/ p% @/ e* y, Q8 y$ O};
' z* O8 I8 O( A+ i4 i+ i1 O
+ N: u% H9 ]) k. B2 cstatic struct platform_device da850_evm_tl_leds_device = {5 ?* C4 x( {  [
        .name                = "leds-gpio",% c" m% N6 h) [, m4 {5 D
        .id                = 1,2 R) l1 V* ]+ C3 m
        .dev = {
3 p. D# F+ D! _" |" |! c! ?                .platform_data = &da850_evm_tl_leds_pdata,
  ?/ l( i  x) k. g6 I4 L( {! @                .release = led_dev_release,/ K% s3 d. m9 e- r0 |7 U4 Q
        }
3 v1 _; B$ y, r, f1 D9 k2 P( U};
6 f: s0 D) u5 X& s- I2 @- H3 @* P( _7 l$ ?. \1 a' A; l3 J- M
static int __init led_platform_init(void)
! g9 v6 b4 Z! q4 H4 `& P2 j" ^{
  \4 P9 G/ c6 d6 L( U        int ret;
: A1 M, H" q" s5 Y% i1 V5 j#if 0, p! u- r5 |6 W+ M# q) f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 ]7 {9 p% A+ ^3 z
        if (ret)" K+ o; \6 e/ K8 F" i0 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") T* e8 u( R5 u! p8 Y: M
                                "%d\n", ret);
4 C9 `6 i. c5 n* D/ s( ?#endif5 m0 ]8 ^  N8 T' _7 S; _. Y* z4 K
        ret = platform_device_register(&da850_evm_tl_leds_device);' t- B0 Q- |4 i: n2 v. z7 R" \
        if (ret)5 b( R1 g" @  v
                pr_warning("Could not register som GPIO expander LEDS");& U+ y$ S* Q1 U+ x, Z# I* ^" D
        else
2 _+ R; F) f8 a0 y" F7 `$ U8 p                printk(KERN_INFO "LED register sucessful!\n");  y$ T2 f" H/ e

. k0 D3 l- e; J: o; E$ K4 B        return ret;, ?' l9 y# |. F4 F8 r4 c
}
( L  ^$ w/ H1 K' X& [' {' _4 A: N4 L4 u* n% j$ Y
static void __exit led_platform_exit(void)
. i; @8 W. ~$ s% z) b{. j' r: x% e5 H) F! M
        platform_device_unregister(&da850_evm_tl_leds_device);
; H* b: I1 t. h0 Z# z. P. G1 U3 B% P% D* }
        printk(KERN_INFO "LED unregister!\n");/ h& m4 f" d! `" Y+ E" U
}
* J9 Q. C( Y/ b. R; Z" L' h. R& K2 U& W5 e; S
module_init(led_platform_init);9 d, ?: }3 J' q. ~# x0 b
module_exit(led_platform_exit);& ]0 u) g8 b$ z0 B

. ^$ Y7 X& T+ o6 w% E: ?( W0 KMODULE_DESCRIPTION("Led platform driver");2 ^" h, v; K! ^
MODULE_AUTHOR("Tronlong");
: a# h% S5 A6 x7 x1 r/ [MODULE_LICENSE("GPL");
2 l. h( s3 D% o) t1 w0 {3 F
* Q: T& q; D$ j% ~2 B6 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 13:50 , Processed in 0.040450 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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