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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 V1 u, @0 k  Q% u# h6 `2 o#include <linux/init.h>
! T) t" W% w* c4 Y5 w$ `& U) g#include <linux/module.h>
1 n8 J6 t) U( V8 E, ~1 ?#include <linux/kernel.h>4 ]! W+ Y# Y7 e+ I0 M
#include <linux/types.h>' e/ y) G# l8 [3 F+ A
#include <linux/gpio.h>! C; ~* r0 T- T$ F
#include <linux/leds.h>3 d) g: j9 g/ m( C7 w. L3 ^
#include <linux/platform_device.h>8 s& ~  U; q- x/ g+ ~+ X" H
6 j: Z, Q* N' M# ^% H1 P
#include <asm/mach-types.h>
, N+ q7 b/ F' b+ T  l( l5 s#include <asm/mach/arch.h>' a7 f: h* d  H! {
#include <mach/da8xx.h>: U7 v) r7 ]5 y5 N0 R  i
#include <mach/mux.h>/ o9 \1 H1 ^% M8 z8 b
1 B1 ^: T3 D2 T: M& s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* d; \) a( H% m+ p' I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' W, Q+ u1 {0 J) }% B! X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 K3 s+ _1 X: {$ R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: C8 W& O# x) V0 f+ S2 e9 e8 V: H2 U' v) X" q) }  G
/* assign the tl som board LED-GPIOs*/
( M- _: q9 U. {5 N0 e0 ]static const short da850_evm_tl_user_led_pins[] = {- Z- Q9 W7 q* j
        /* These pins are definition at <mach/mux.h> file */% I9 ^2 g. ]1 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% I- t1 M% L: _0 [; Y$ x        -1$ R' `- `: u6 f: e! p* g
};1 j9 m, m) Y! A

* t# P+ A9 e$ Y/ E) m7 J4 v7 F  ]static struct gpio_led da850_evm_tl_leds[] = {4 w0 R" @5 q2 Z( {" _3 }
        {. S% B) M( F6 z: m
                .active_low = 0,; E  V. V- n# C4 ~3 @) ~
                .gpio = DA850_USER_LED0,/ Z: B2 k2 f* O# D6 [
                .name = "user_led0",1 T# f( U- G3 l/ r
                .default_trigger = "default-on",& z0 I9 l7 C# k
        },; E7 D6 e2 R/ n
        {
; u# h9 F$ p# K: t: f% [                .active_low = 0,+ R7 ^/ F3 s, c( r& C  P
                .gpio = DA850_USER_LED1,7 P) ?6 R, X, @
                .name = "user_led1",
$ Z# u: e0 c6 u* M4 I                .default_trigger = "default-on",
  ?$ i) o5 O7 w8 p8 A7 M5 m        },
. Q7 q% k4 N; b" E% H* \        {) ^3 W! `$ e: |7 j6 ~" X. j
                .active_low = 0,# q# {  x( m2 n
                .gpio = DA850_USER_LED2,
- i2 Y( z: e: x8 u8 G4 E                .name = "user_led2",
/ J, }* Y- h# q* ?+ L8 y0 Q# m                .default_trigger = "default-on",
5 e6 s( W8 ^6 {6 w& x; `        },
- \& j, X, c' D8 u& W9 y1 I        {
% \+ X$ d+ ?$ b; H  p" q                .active_low = 0,
' K) e, }/ A! t% \; [  [; _' A                .gpio = DA850_USER_LED3,1 o- Z" U( {1 L
                .name = "user_led3",  X* R8 y- W6 V# r
                .default_trigger = "default-on",
0 M  S) B& z! `0 c2 n        },
& F4 |8 Y& V6 m. M# X6 ?, U};
7 L& R7 _5 K8 R/ e9 }) L; ^- o/ R! {4 r$ ~0 ?$ G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. N2 R' T) k, i3 V+ M" ^$ R( u% v        .leds = da850_evm_tl_leds,8 P, b0 v5 e) q- |$ ^$ d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- n% O3 {$ [1 E4 L3 b
};
  A% c; a9 K  b- G7 O/ @$ c
5 Z( C) R8 U2 S$ }, m7 Hstatic void led_dev_release(struct device *dev)
; Y1 W8 {0 M4 U+ k3 Y( [{
2 e9 K2 I% Y- w4 h};
+ j$ v( m3 V6 g5 o- R6 x3 c$ V1 j0 t" H, P+ M+ Q7 |. Q2 U
static struct platform_device da850_evm_tl_leds_device = {
2 m6 L9 d3 h+ g( B2 e" C# T        .name                = "leds-gpio",
* s# k+ ]8 [! U  [) h        .id                = 1,
7 w( L; c) B5 l) l! M1 b        .dev = {
4 M3 R, w5 s; c: }                .platform_data = &da850_evm_tl_leds_pdata,, o6 b: r) [) v- p9 @4 G( I8 [
                .release = led_dev_release,* s# b: K& S0 ?2 L
        }5 B  n0 u, C% _) a
};" A) K/ Z% v, L+ \  Z. I
- w& Y) M# e1 a5 D6 [
static int __init led_platform_init(void)8 l8 v) K! U" e( P
{$ @0 ^8 w; I7 b2 F4 n9 U
        int ret;8 O% I# Q3 R3 d+ s. s- r. j; B
#if 06 y& P0 {0 k) \$ D7 ?! {8 B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 \4 X, O( I1 ]# r# `
        if (ret)
" K& s  ]- T, @" Z+ f6 T) l6 a: P$ ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". W0 A6 G1 J7 C0 t3 X
                                "%d\n", ret);  q9 r5 W( L! L
#endif+ v, |4 B) J0 t2 g$ B5 M! d& _0 C* g
        ret = platform_device_register(&da850_evm_tl_leds_device);2 m) S6 j6 V6 d; U
        if (ret)# X2 u5 y4 r/ v' |7 j
                pr_warning("Could not register som GPIO expander LEDS");
5 p6 e$ F# c1 A  v8 ?        else
9 h; E: G8 h  y2 f  N4 c5 b. c$ r                printk(KERN_INFO "LED register sucessful!\n");
% M3 d' j* |) E8 }3 v( o' g/ F
" j8 e4 f; Q5 U5 I        return ret;9 X3 m9 e' I! H3 f) ^  C
}
6 u: }% L8 Y9 ^+ o0 _% e" c
% C( G) A* j0 E* \$ w4 Z4 b" f1 O; U# xstatic void __exit led_platform_exit(void)3 p, P6 ~* b! K  j* M
{' E7 I, L4 r, T, k
        platform_device_unregister(&da850_evm_tl_leds_device);7 P3 K6 Z$ J. F
7 W2 U' i% |( s; W( ~3 t0 a
        printk(KERN_INFO "LED unregister!\n");
, P6 }$ i4 U" j3 o- B3 L8 K}# H8 Z2 m+ e6 X" k9 Z
7 v7 Z$ Q3 U7 ]  M7 c7 F' U; S
module_init(led_platform_init);4 q: Q$ Q; @& y5 O
module_exit(led_platform_exit);( P8 z& b/ @2 U6 T5 B

: K; B5 m; a( T. t& q7 X1 yMODULE_DESCRIPTION("Led platform driver");
* \1 ?- K: |/ l# gMODULE_AUTHOR("Tronlong");
) `; y# h% Z0 f7 H# XMODULE_LICENSE("GPL");0 s. v5 e: P2 G* k0 R1 F& G/ n
' w8 Y' S7 [- h1 r  ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 11:43 , Processed in 0.043985 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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