程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 I8 ~* I0 P( f
#include <linux/init.h>
/ r0 M5 k* M, V3 K6 e#include <linux/module.h>- k% D4 E0 s1 b3 b8 v/ y0 g4 R
#include <linux/kernel.h>" S* S6 B: m* E
#include <linux/types.h>4 J0 }7 |2 c6 q" A: W
#include <linux/gpio.h>
: X" v0 k. `. `& M1 [9 O# `* R3 a#include <linux/leds.h>' E; F8 P. W4 ~# L% `
#include <linux/platform_device.h>5 T' d$ R$ B" {. I  b6 U
9 y3 |! V' o, E
#include <asm/mach-types.h>2 x3 H3 E# e0 o& w9 M6 Z& @3 a* s
#include <asm/mach/arch.h>
: m6 w- k) f7 U6 `+ \#include <mach/da8xx.h>
* m3 E2 G& C4 Q  a% }" Q#include <mach/mux.h>! [9 d% q1 R! T2 F7 N
" E( q/ h' `7 V& {( x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). O  V; Q, f% J: y8 |
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& Y; d& a4 _: y! H" x4 I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# ]6 O7 K6 \$ v6 C4 u, H* F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 l/ o* ^, C5 |3 `7 F. I

- }7 O: m/ |. P9 C. b1 C/* assign the tl som board LED-GPIOs*/
$ p5 Z  |) e; J# }  }; v9 n- H0 L6 C# wstatic const short da850_evm_tl_user_led_pins[] = {: b# t- r) F! s: Z9 B  F: S  p8 D; L
        /* These pins are definition at <mach/mux.h> file */
) T8 m& e9 u: q1 }" K6 Y0 O4 W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) ~& l: b: {% M- O/ `9 y1 A5 W! s
        -1+ o; v) u4 B8 a7 V' ~& c7 U
};3 x+ N* y( L& r
6 v; d7 N: y$ j2 F- Z: K& b% ?
static struct gpio_led da850_evm_tl_leds[] = {
, O( o2 H; k4 m. Y9 N! e* _, N; D        {
8 O1 \/ M, {; F                .active_low = 0,3 [( ~% X& _3 m$ c
                .gpio = DA850_USER_LED0,
( l& s5 ?) s" l* W8 x                .name = "user_led0",
2 c8 B1 D6 g. U  r                .default_trigger = "default-on",
+ l; L, {7 u% K% u2 c6 g        },
+ f- }" B' X! F' E5 E" V8 ?        {2 C, U) T; G, V, g' c
                .active_low = 0,
8 q" R6 W: L4 W3 w. s                .gpio = DA850_USER_LED1,' I5 B2 Y% \( [; }: f& Y5 ]
                .name = "user_led1",
6 r6 G; S6 O; h  ?  e$ J  ~4 i& Y                .default_trigger = "default-on",
# m' g* U% X$ B! u; v        },
* _# Q$ [" _: w8 B3 i; q) A! r        {. d5 _0 ?, |" O0 l
                .active_low = 0,1 m+ r5 T2 t4 H, B% a' p
                .gpio = DA850_USER_LED2,
# k# W- ~: L& _% w) v0 M1 D. K                .name = "user_led2",
) w  u) u# P6 ~8 a                .default_trigger = "default-on",  A6 m+ h$ E" A' {" c
        },! [; W/ z$ x" Q
        {' z7 ~. S0 z3 G
                .active_low = 0,
: Y( Q# E. z1 P                .gpio = DA850_USER_LED3,) r0 R$ I+ k, w! `/ S* }
                .name = "user_led3",
- ^9 Z+ D: P3 I+ W* \                .default_trigger = "default-on",8 R4 M3 H- `/ j6 ]
        },
* x! \7 i1 P% c};
% u9 H1 K7 D9 p+ Q7 B& \, g% }0 F" i0 x% U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ g+ U. [; g3 y9 o        .leds = da850_evm_tl_leds,4 q6 ]  \+ {: B' @& @! V; z1 Q4 L# Y# f6 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( X. P; f- V0 Z+ q};
) x) y; P0 R8 n9 A
" X* `6 ~2 [9 hstatic void led_dev_release(struct device *dev); S8 Q( H3 T% ^5 D( j
{
) [) `2 x7 P' c% S# @};
( H" L& e% V+ Z5 [! J8 A' _
# ^- x( l2 T1 H2 Gstatic struct platform_device da850_evm_tl_leds_device = {7 a6 ?( _# A8 F% s" h
        .name                = "leds-gpio",5 I  K1 j# H" \0 o" V; [/ O' [
        .id                = 1,4 h5 P9 h# r. l  }, N& o2 P! q
        .dev = {( n' p' H- m, n: ]: Y; b
                .platform_data = &da850_evm_tl_leds_pdata,% @; i" _7 C" `( [% }& W4 D
                .release = led_dev_release,
6 e# d) |3 ?0 _$ j) B$ g        }3 U: K' E0 F* T6 \
};
. o; c$ n: U$ M( w# K: p8 b0 |! W! F6 _4 }4 {
static int __init led_platform_init(void)8 b$ v  ?" l5 U7 ^
{: n7 V  D# K, C( n4 Q, w
        int ret;
# _! H0 }' L4 R' z$ P1 l#if 0
6 ^) z9 L4 e+ H3 z4 @% f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: I; q* R) z% @0 X: T- Q        if (ret)2 _' Y9 e' z. R8 b7 D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ [9 \4 v! ?) A
                                "%d\n", ret);
" G% A( n( E0 I& v5 _& ?#endif, {; \- A2 s; `/ O2 G
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 Z% U( F2 ^6 \7 E& N$ k        if (ret)% z5 O  C, B9 D9 K1 B
                pr_warning("Could not register som GPIO expander LEDS");
5 N5 I- h; B* N' T        else* I" t  |, ~2 Y6 n
                printk(KERN_INFO "LED register sucessful!\n");
* R: Y! t) P8 X# Z6 V4 N. ]9 C2 Y  [
        return ret;3 \) L8 N# ]: `5 a! F! W! R6 Q
}
4 @' f/ K1 B/ i* d) P9 y+ X% ^) N+ M0 p
static void __exit led_platform_exit(void): x3 X" h7 z& F) \/ r1 e
{8 g& v0 ?2 I! k! B2 ?
        platform_device_unregister(&da850_evm_tl_leds_device);" ?! _' P4 Y8 N8 M0 L* |
! @! P1 p, b* n5 l* y7 E) |0 m( a
        printk(KERN_INFO "LED unregister!\n");( D( Y; l3 M! B* a/ Z$ ?
}
6 K3 X9 m" ]4 F% E
/ a' s+ v  S+ ?# |) bmodule_init(led_platform_init);
( o  P7 j" I0 d0 `3 b% @$ V3 tmodule_exit(led_platform_exit);4 J8 y) ?* n% ?2 c. f
. N$ p$ q7 ^3 D1 t( \& g
MODULE_DESCRIPTION("Led platform driver");: X5 ~. x# I( D' B- g, J+ {9 |
MODULE_AUTHOR("Tronlong");
& C, g/ @) t5 Q6 {# L+ s7 KMODULE_LICENSE("GPL");
  T" C' x; o  c" y( {- u; @# L' J7 V( W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 02:34 , Processed in 0.036294 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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