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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. `. V# C8 T# c1 @8 u0 N# C#include <linux/init.h>
+ C4 r8 U4 E5 H7 d4 G+ g1 K2 f3 N#include <linux/module.h>- a/ b' `: R$ Y0 S$ t
#include <linux/kernel.h>
1 v6 ~5 b& x- K5 E( f. {#include <linux/types.h>
4 c3 R6 a. G2 ]#include <linux/gpio.h>$ Z% }4 `) H4 P6 Z0 ?& [
#include <linux/leds.h># ]  S9 r' ]% _4 a
#include <linux/platform_device.h>
( j0 |. c9 y, K- D& K* S( g$ B1 s  D% ^2 {# d/ O# U
#include <asm/mach-types.h>
0 U2 K" f, g' H9 {- K) W#include <asm/mach/arch.h>  d: w  Y$ O# a. n% }6 l" B
#include <mach/da8xx.h>, M; L. p  T6 _7 i
#include <mach/mux.h>& B; {, a; \+ n& I$ E
& z1 h' {0 c, T0 O3 Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) R6 m  c% M4 h- }  ^# z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 @7 ~& U# X3 S+ K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% S' C% @; J: p0 E: Y5 x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 Z% a: o( u) h: S$ h+ {! p

2 [; }! |1 a, b. }6 [: c" U/* assign the tl som board LED-GPIOs*/. C9 @2 h  p1 t/ q& U# |& q
static const short da850_evm_tl_user_led_pins[] = {
, ], }1 N6 j# Z; X        /* These pins are definition at <mach/mux.h> file */% [/ x' n- [; l& q+ z" X  u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ s5 k+ t5 B, _% X3 s' B
        -1. m) x/ R/ Y/ A2 L
};, |4 Q. L  B+ ]* [7 S* ?
) |: k9 U- W: F/ h# q$ p
static struct gpio_led da850_evm_tl_leds[] = {/ A7 C7 w: D7 ]9 u
        {. T! {8 `7 \: a+ m4 C' }- Z. C1 [1 |
                .active_low = 0,9 H4 Y' g" G6 r3 i! l" H2 |
                .gpio = DA850_USER_LED0,
, O: H1 s6 S* u/ m$ c3 }, Q                .name = "user_led0",0 ?. y4 C: w0 ~" v4 ^) i! S
                .default_trigger = "default-on",% }& H. G9 i4 q) h5 y- R
        },1 u- w3 t4 a# N
        {
& W, W2 }- X* I6 e6 V* R                .active_low = 0,
' o, m* W; U8 }8 e/ W8 |' W% ~                .gpio = DA850_USER_LED1,
- J$ p+ @* ~) ~! |8 d( A; V4 P                .name = "user_led1",2 ^; S' J4 X$ r( }1 ^7 {
                .default_trigger = "default-on",
( Q% |9 T2 m( N# N        }," e' C( U6 T8 h+ p6 \
        {
9 ~. n# [% @& A, u3 M2 y; a" e                .active_low = 0,
3 ^/ n6 w3 J# t+ ]0 f                .gpio = DA850_USER_LED2,
) g  i+ N/ m4 K, F, u) N                .name = "user_led2",5 |5 Z8 T( I  a" U8 B; v- h
                .default_trigger = "default-on",
! G# l: ]6 {: I6 v! N, i        },
" ?  L" c0 J8 s% k4 n        {0 e$ H2 T" W0 D7 D8 R: D6 B, g3 v& t% }7 H
                .active_low = 0,* t2 y% D' ~6 D7 v
                .gpio = DA850_USER_LED3,. s1 l( p& S/ s. z3 s- A7 M1 P
                .name = "user_led3",
4 T9 |, T" a/ T8 i6 U# t3 |                .default_trigger = "default-on",7 k. P4 _9 ~" Y: \, B
        },
* b& l, ~' S& _8 Q: i};! n( D* X. e2 p  q
+ Q8 g! W, c+ x5 F2 e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ R3 R# ]  L* T1 G4 e2 H/ R& E
        .leds = da850_evm_tl_leds,
8 Y! Y" F6 P9 L0 J6 _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 K3 a2 M; ~; g};
! k) t* Q3 Y" x( [+ M+ I- H! k& S  a! ?  r) P6 U  q
static void led_dev_release(struct device *dev)
1 s$ p# y1 o8 D{) D; T9 g( e3 r6 w9 a
};
5 ~( v6 _, T& _. D& Y  L) W6 ~) K0 I3 s- b0 v8 j
static struct platform_device da850_evm_tl_leds_device = {
* i! L. }& r" N2 u0 R- N: P        .name                = "leds-gpio",
5 v/ p% z( X/ ^5 X  B7 f, g        .id                = 1,
! _! ^" i8 Y5 m* D; ]6 ^        .dev = {
( t1 G4 N7 Z/ m* K8 ]: |  D+ k5 J0 z                .platform_data = &da850_evm_tl_leds_pdata,  p% |+ ]8 Q$ K# K; F1 ?
                .release = led_dev_release,
* R) ]+ v9 ^+ U% f& a" h        }* V0 i3 s# C6 e6 G1 j" p
};
) h, O) _+ A/ `$ v' H" T, p
& j7 S2 j( d) W, n3 y. A! @static int __init led_platform_init(void); d5 b$ q' y/ f: I& O
{
) Q+ e- s" Q' V/ n        int ret;
1 l4 z3 @* P6 \- v: K9 X; D% c5 L+ b, R#if 0
% x7 l; }- [! J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- p6 R& ^8 A5 D* y% k* C$ M        if (ret)4 C! {9 T7 t2 S0 V) t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 v# Y: W5 q! p" \4 o: y" \
                                "%d\n", ret);
5 k% X2 b9 D2 s- k9 p; Z$ {3 [: a#endif
* i1 J8 s$ F4 V: ?9 {        ret = platform_device_register(&da850_evm_tl_leds_device);  z- f/ s9 L- \5 c
        if (ret)# B3 u7 R5 S% P; T) A8 }2 q. B# E) f$ F, [
                pr_warning("Could not register som GPIO expander LEDS");+ C+ x6 \: u( S2 X  l0 P+ n
        else
7 W7 Y2 @9 p& E. ^7 |                printk(KERN_INFO "LED register sucessful!\n");
6 K% @7 z" t# ]4 s! }, `  v: l
" N# b, }8 E2 A( \8 A# v* h% h        return ret;/ D: g; p  w1 I$ b
}! C) A1 R" k9 y0 j) s6 o5 [& [; D

" Q. p/ _+ l5 J0 u2 H) v5 J6 `static void __exit led_platform_exit(void)9 i" O. ]& B) C
{' G  E4 v, S" X1 n
        platform_device_unregister(&da850_evm_tl_leds_device);
0 y. K- M: |/ u  e2 a: v6 f, B0 m+ D$ `* I# M7 D2 G
        printk(KERN_INFO "LED unregister!\n");& S: Z* o. ?/ s' I
}' q/ p0 K! R" ~2 ^6 I
5 W, S5 W% H9 f
module_init(led_platform_init);
/ S% w, e$ u9 M! s1 [9 W  U$ X- `module_exit(led_platform_exit);
- B5 b- U  S- Y0 C+ @
* H6 z5 {1 @, [. A& g5 CMODULE_DESCRIPTION("Led platform driver");% C8 u$ _3 {  f, g  C
MODULE_AUTHOR("Tronlong");2 x0 x. q9 [( Q/ g0 X
MODULE_LICENSE("GPL");
3 @) a1 ?2 h" r7 }
$ W9 x6 M/ z2 B  K3 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 08:43 , Processed in 0.041043 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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