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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 S& \. Z' c3 N5 M8 c
#include <linux/init.h>. V  C' C; G; }. B/ K" H
#include <linux/module.h>% R/ H4 r1 W$ X
#include <linux/kernel.h>2 H, |( q: A" j: ]5 {7 z
#include <linux/types.h>
" N! `5 q; K* F. n/ r# @9 z  l#include <linux/gpio.h>8 W4 L) ^2 S$ e5 f( N/ D
#include <linux/leds.h>
* x1 O. {! F* m! j#include <linux/platform_device.h>  w; v) \) z9 o5 E8 _/ S8 U; h
/ P8 W+ M- h8 o2 c) _& T
#include <asm/mach-types.h>* O0 T3 s; G& u2 i6 x& A  m/ y& D
#include <asm/mach/arch.h>& m  O6 ^) q( q; N9 t4 V4 }: }
#include <mach/da8xx.h>
3 C/ J+ A9 @$ V8 v, d/ N#include <mach/mux.h>
/ i- e- b2 n1 W$ W8 N: w0 C) h$ V+ v; l9 C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 \/ t$ F- c0 D, c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ j1 t0 _- L% _, H' M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 w4 h+ I9 z1 y2 C6 q* L6 [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' K6 h8 c! j+ P4 i) @
: @( O+ A! b9 m/* assign the tl som board LED-GPIOs*/
* F& U. U8 }8 D0 [) I$ zstatic const short da850_evm_tl_user_led_pins[] = {
* d: a& s+ z* z# o9 F3 g        /* These pins are definition at <mach/mux.h> file */
7 F: ]4 D2 @5 A0 w* X) F* t9 Y- e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( q2 X! [. n! u7 J        -1% e. F/ i. u  t* g% v2 f4 i- Z
};8 i. T; c4 K- |) M% N2 e. U

5 b& c: S1 A9 Y* l' D$ n& dstatic struct gpio_led da850_evm_tl_leds[] = {2 J  ?' ^. M/ I; B, L5 O: s
        {4 B* J8 J( R( j: c! Y# ^8 O+ E
                .active_low = 0,
, h+ M3 A& J- r                .gpio = DA850_USER_LED0,
7 d! m8 f. {; [                .name = "user_led0",
3 P" g4 l; W' S9 W1 B                .default_trigger = "default-on",6 H' h5 y* T' a: [. l+ s0 N
        },
5 [4 ~4 p; `8 q; ~; y; K) }        {0 m. D7 u2 B3 c/ b0 j- Z
                .active_low = 0,9 h& d( x# c6 `' _
                .gpio = DA850_USER_LED1,  M/ C( Z  J. b( x2 U  l
                .name = "user_led1",: x4 v' j. \1 {: w; ~- y3 U, T% a
                .default_trigger = "default-on",
# h* N' T6 F2 V7 _: _1 ^8 r. v        },
" f, p# o' J9 U# J, N% S5 d        {
0 n7 B8 M1 K3 G2 I                .active_low = 0,
# U1 H% x% E& ?* s                .gpio = DA850_USER_LED2,+ o+ z+ I# f) b) I  B& `4 ]
                .name = "user_led2",) |6 x+ R5 c- M
                .default_trigger = "default-on",
" o8 P* O3 ~' t* @        },+ x3 r8 R+ k% M; p  R3 F: ]
        {% }$ F/ y4 b0 D9 |. D+ q
                .active_low = 0,
0 J1 e1 l( H4 _                .gpio = DA850_USER_LED3,
' p' W1 Y$ H- F, w+ V8 `! O                .name = "user_led3",
- m7 i7 w8 X3 ]/ A& [" Q/ T                .default_trigger = "default-on",6 }9 J. e7 W' \9 z1 ?9 f: k" s
        },
& D' l- ~# W* J* @' K0 r};
8 r! A" _0 \9 f- j3 s8 l- k
6 \' t5 k; b7 p" c* u: ?& R4 fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, b3 f! r6 R% x' J. x
        .leds = da850_evm_tl_leds,
3 x* d- L' u8 S' j9 A; N* ~- F* F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ y5 C& Z8 Q* \! K. g$ G9 E
};8 j  s7 S0 @8 R: Z7 d
+ Z  @- J' J# A" G
static void led_dev_release(struct device *dev)! x9 [& b9 P. @  s2 O+ x' P' s
{
5 I& m$ p) U' ~5 h};
" v- [  {5 R9 I: Q1 m. ~3 w  }9 U1 n5 R
static struct platform_device da850_evm_tl_leds_device = {6 a! O$ E! V6 i+ N
        .name                = "leds-gpio",
- z/ t7 G2 p* |  K* i5 p% W# J        .id                = 1,7 k) N, o4 |  c0 s
        .dev = {9 N  ?- S3 B1 ?8 g& W
                .platform_data = &da850_evm_tl_leds_pdata,% ]" a7 E) l: e0 J
                .release = led_dev_release,
- _" ~3 N6 S4 b! e        }$ v7 V$ k, H# ?
};
4 H  ]7 {% @  v* g+ F2 e
6 |+ {/ z6 ?; ]* A5 o( Kstatic int __init led_platform_init(void)
5 m8 Y  j; A5 j" U" l. ]' e{
4 `4 h6 D& e7 G        int ret;
1 T( l' X2 Y& d* H#if 05 u" G. ^$ i% C, m- J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 p2 w" `9 ^1 W2 K3 c+ _1 ]" p        if (ret)
" d, K  b8 V4 W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 T: |, v1 W0 ~* N" }4 L                                "%d\n", ret);) i$ ]2 V5 K( o+ j+ J4 w
#endif
2 F/ p3 J2 z* a' M9 t. z        ret = platform_device_register(&da850_evm_tl_leds_device);
* ^( ]+ Q2 {" Z+ {. Q        if (ret)% m/ y4 n# o8 i% y) L: g; D6 g
                pr_warning("Could not register som GPIO expander LEDS");
7 Q% d& ~6 O! v6 M/ U: p- v        else: T! |$ }1 z4 r
                printk(KERN_INFO "LED register sucessful!\n");
% ^. ~2 I. M( G$ I% H* {- G: b7 R1 m) H# C1 y6 S6 m3 u" q( S
        return ret;* p5 ]& u6 [; C$ L& D
}8 @$ m8 K( C4 j9 o) c
* }3 C; N; t; r
static void __exit led_platform_exit(void)
, c" e. y8 X6 ^/ L{
* [' Z9 m* A& O& x- M$ ~" i        platform_device_unregister(&da850_evm_tl_leds_device);, ?" f$ v2 N( l" [0 l
  d1 j( x9 r' M7 m3 z3 {% x3 l7 h
        printk(KERN_INFO "LED unregister!\n");
* s) H1 T6 W9 h  q) w7 n2 X}5 f- J( x! r/ R+ p6 R6 |

% ?) Y# L+ B- vmodule_init(led_platform_init);
$ y/ l/ p) T2 r9 dmodule_exit(led_platform_exit);% [, N3 D  e. W* u& x

  K1 w7 V: a. T; T4 LMODULE_DESCRIPTION("Led platform driver");7 l' n* N1 R5 O
MODULE_AUTHOR("Tronlong");# q; Q2 V# r4 R
MODULE_LICENSE("GPL");
& j. _1 b& V: a! j# x
0 B; v/ g% x+ z0 G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 15:16 , Processed in 0.039257 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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