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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! P+ g' v) ^. R; {#include <linux/init.h>& L7 M* ?; t8 Q0 d: {
#include <linux/module.h>  [0 A6 w  D% ^
#include <linux/kernel.h>
4 R( {) E2 E2 T9 Z3 l7 D#include <linux/types.h>. h% [3 u& V6 M3 u% S$ F% Y
#include <linux/gpio.h>3 x+ r1 x& S8 {1 C) ^: U3 N( K* Q* T1 O
#include <linux/leds.h>
7 L+ G* x2 p. f* W3 q& {+ c#include <linux/platform_device.h>* q3 W1 z$ B4 r8 z! M+ }

0 E/ h; P+ ]$ D2 c#include <asm/mach-types.h>
5 ^+ {$ D$ m- s5 D/ ^( g. F6 f4 X6 F#include <asm/mach/arch.h>
7 o3 ~$ L! U8 l8 F" C+ d#include <mach/da8xx.h>! H& m. v! x" k2 p" `* p" s
#include <mach/mux.h>
# B, ~9 S7 v. B% B. G5 H& P& x  ?$ B" W" U! U0 T  J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 n" x- e) _7 I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 w" v/ t$ a5 Q7 K& c" B& H5 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! `- v; o* x5 l0 Q* D& A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 ?8 `" K3 k: D2 ~& L0 J

% P5 v/ K6 J* Q; E; _/* assign the tl som board LED-GPIOs*/6 S2 ^1 z9 t- Z/ U3 W* u
static const short da850_evm_tl_user_led_pins[] = {
+ `3 q  Y  U' n( T        /* These pins are definition at <mach/mux.h> file */& D" o; W& G" X9 u3 k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 i! ~* V4 R6 v% r% B        -1% C% y6 P2 p/ I4 l9 r
};0 r3 l0 l2 r3 i8 d4 u$ ~

* a. C# R7 F1 C# mstatic struct gpio_led da850_evm_tl_leds[] = {
- `/ @+ u: K# ~0 ?        {
" X; |4 |' b) C! o/ D" P                .active_low = 0,3 C, }5 X! d  O. O$ d$ ^
                .gpio = DA850_USER_LED0,
1 S+ O4 n# l4 @* G8 @% Z; T/ f" b                .name = "user_led0",+ E- u- t7 c. R% p  j* I; f5 @5 I* i
                .default_trigger = "default-on",1 p6 \) _; V# L2 W
        },
9 }0 }3 z; L9 O9 o2 ?' d        {$ P* D! Y8 i' _- A6 k, C
                .active_low = 0,
$ f) o6 @7 a  ^5 S5 E+ D, {4 Q                .gpio = DA850_USER_LED1,
9 G  T  d% P. W, \" v6 n% ^( O                .name = "user_led1",% F: w6 \+ U/ F# m
                .default_trigger = "default-on",
) |% ~8 v/ h7 f( X" @4 l        },
! n% U2 I5 o1 @/ z! u# g        {* i/ K+ @! o6 A. v( T
                .active_low = 0,
7 F5 `' r5 t/ W  V  |6 p4 P. P                .gpio = DA850_USER_LED2,
6 a* K( M" Y# W6 H; A                .name = "user_led2",, }0 k8 X' B' `
                .default_trigger = "default-on",
, u2 b5 k' p# o7 D        },
$ K5 Y% k7 A, I, W" e7 S        {; M3 ]# Q, Z- n; l+ N
                .active_low = 0,
) O1 i4 e$ B. |/ O$ I                .gpio = DA850_USER_LED3,3 y& I, T! T2 `' s/ G
                .name = "user_led3",
% s) d( R# e+ h  D# l                .default_trigger = "default-on",
' [9 u- K+ p0 v  Q        },# J7 K2 d  D3 J/ O/ i8 Y
};  U, e: `. P# A2 o% @2 P$ `1 n
- c1 i4 ]& F1 e6 n" [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ \% U! `9 Z# ?, S
        .leds = da850_evm_tl_leds,# t, i6 ?* p' _4 F6 e  G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% {: z5 t: e9 J) K4 Y0 Q" Y" G
};5 a) A. X6 A3 G' Y5 g8 g
7 y6 v0 F2 i6 E3 l
static void led_dev_release(struct device *dev)
  Z4 D1 o1 U" b7 g" D- C# B/ t{7 j. @2 \4 _  z0 I0 K
};9 u) k4 r; R% Y' b/ c7 j$ _
* x* d& s8 }6 |$ Z* L
static struct platform_device da850_evm_tl_leds_device = {
; D5 h; z9 Y- {, K        .name                = "leds-gpio",
1 A4 r' G/ w3 k* d! n! g6 M        .id                = 1,; |' U: P& g" E& T$ M, x+ {/ g4 x
        .dev = {
$ c9 J: w8 M+ r8 P! L  O9 N                .platform_data = &da850_evm_tl_leds_pdata,
9 C- z+ Y9 Q6 d1 I                .release = led_dev_release,
3 [- O  w( n- S8 @. Y        }* t; `" W# |. c; Z& }- {
};
; E2 @8 Y. j2 |) l! ^$ V% t% s, w0 ?5 a
static int __init led_platform_init(void), I7 c, N3 D$ H, h/ B5 ]* V
{
; t4 i8 D+ d! L; D2 t# m        int ret;7 ?- [  D  X$ ]$ m: C5 J' d7 ^
#if 05 M/ U' p) j( Q9 v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 Q/ u7 k% L& [' E* t6 \" q& Y+ W- D        if (ret)
# G6 Y+ d9 J1 R& t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( I4 X- v3 p: t9 b1 J
                                "%d\n", ret);( ?6 i2 x9 y' D* s$ c
#endif
% b* |4 z- }/ g, ^        ret = platform_device_register(&da850_evm_tl_leds_device);
9 D+ ~; M" Z" l: X6 T( t        if (ret)6 V4 i% f" }/ L  Q- g, C# T
                pr_warning("Could not register som GPIO expander LEDS");! K; O' L, R3 r7 X' r
        else
. T$ Y$ S" J  |  C# U5 B5 }                printk(KERN_INFO "LED register sucessful!\n");% u; j3 d) Z0 D- @6 i

/ N) c; F& f2 |; ^. w6 E/ H        return ret;" Z4 H& i1 c1 r5 i9 H* C$ E. k
}3 q! {" c, O7 Z
0 F4 j. Q+ ^! S" [4 k- `
static void __exit led_platform_exit(void), l0 _: h; t9 k; q
{% e6 h; ?1 H/ R6 F2 l/ X$ W1 X  C3 y
        platform_device_unregister(&da850_evm_tl_leds_device);" r7 `! J4 N) R7 v

2 r% t* Y) ]  o+ E( t1 |        printk(KERN_INFO "LED unregister!\n");. q3 o% m- ?) E# o  f3 a
}" [3 F8 ~. `2 S6 e5 R
' _, c) x' l! B: d+ o3 W
module_init(led_platform_init);+ P/ I& o  x' q8 v/ _
module_exit(led_platform_exit);
3 Q( Z# @" `6 y  Q3 W! y9 I0 `* T; v6 m
MODULE_DESCRIPTION("Led platform driver");
& _. d" X' l- f: K9 u4 |( NMODULE_AUTHOR("Tronlong");+ Z7 p9 |  w( N6 C& p! b
MODULE_LICENSE("GPL");
+ i1 B2 K& e# F2 \6 d% a" R
0 z3 Y8 h) J! V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 02:18 , Processed in 0.038966 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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