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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& N  D. X3 m, [# q4 {6 j
#include <linux/init.h>
# a% H: f4 A# |- R#include <linux/module.h>+ ]% W  X. g: x5 \: K) `7 E
#include <linux/kernel.h>
* N- \$ T$ _5 X$ P6 G+ P& s! `% H+ i3 h#include <linux/types.h>+ n) |2 q9 }3 `1 ?! M) n0 D3 `
#include <linux/gpio.h>
5 f* Y" |7 z, Y* i5 }#include <linux/leds.h>
- X7 p5 n- t: S+ r: |. @#include <linux/platform_device.h>
1 ?" n7 J; u4 w6 B  |& H7 r$ w( C1 Z& ~; J) M4 w) Y, O, t* ^
#include <asm/mach-types.h>, k' M( A3 A& r) ?9 C2 @, J9 }+ s
#include <asm/mach/arch.h>6 T. _9 e' m) Y/ b4 F0 f
#include <mach/da8xx.h>
7 h8 [+ t  I5 f% d0 V#include <mach/mux.h>9 |+ n! u1 q. h$ w  V2 i

1 \8 [( d0 d' v4 {. O/ |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: M7 H9 J, K; v* r5 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), V: |: v; \, R' ~5 ^# `$ C( q3 S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* d3 n) e, I, {# u6 h) i9 `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 s0 o% i( O8 C- {8 j$ C, [4 b. |

# S6 Q8 u! J! E# Q1 X# i6 C3 O/* assign the tl som board LED-GPIOs*/2 E/ X# A1 D5 g6 s
static const short da850_evm_tl_user_led_pins[] = {
  i5 ~7 {( x3 s+ r- F+ d, M" y- N        /* These pins are definition at <mach/mux.h> file */
3 P6 }1 M5 b# E9 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! I- E% n/ r" r# U, h        -1
( I0 T% j7 g- D7 q};8 M% U7 V/ M/ h
, I& }  [$ Q: D" F
static struct gpio_led da850_evm_tl_leds[] = {
( G' L5 x3 @1 c$ ]  ?        {
7 i. ^8 O" u$ |# s                .active_low = 0,
! l  B" x1 U0 P! {5 n                .gpio = DA850_USER_LED0,
7 e1 d" H: t+ a! K                .name = "user_led0",8 W% p& S/ L2 F7 D/ N* r. c- h
                .default_trigger = "default-on",9 B8 c3 Y# |8 n1 z7 }& W( Y$ ~
        },- `' ^# S; \6 j, Y( \8 _& i
        {
+ W. r5 {: F- X                .active_low = 0,
5 z* S* L0 G9 t                .gpio = DA850_USER_LED1,- U, J2 b7 p, F/ _2 i/ U- X% w' J
                .name = "user_led1",5 c7 C: @6 L8 |9 }! W# ?' H; r$ e
                .default_trigger = "default-on",6 m9 j9 X. I2 R. t
        },) T# E3 L' v9 C8 F( A' K
        {
! S6 c2 }  J1 b- g6 {1 X                .active_low = 0,
2 }5 \0 ^# ]. d/ a1 n                .gpio = DA850_USER_LED2,
+ O& b0 b4 F$ y1 D- ?7 a! ]                .name = "user_led2",% Y+ l8 Y# e" ?" k# n
                .default_trigger = "default-on",
( S9 F) ?/ u0 P/ l5 \7 @) a1 z/ \        },
3 e" b8 U" H$ [- y3 m$ ]        {% ~4 P4 g' J. d' n
                .active_low = 0,# |7 a6 f0 e) G4 M! A' v! N$ G& r
                .gpio = DA850_USER_LED3,6 b+ R9 ?$ ?2 {( w& k* b
                .name = "user_led3",5 d1 Q( ?2 |8 v$ |* b- r/ B
                .default_trigger = "default-on",
; `( |% z/ \& L9 j- \" U        },
1 t$ @- n- N* D# W! j( z& R};
! N$ z5 G, w8 ]7 G2 A4 O! T) l) `" w
! z' U& S. K. S6 [5 n' gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- [' g3 e; }, C6 J. Z        .leds = da850_evm_tl_leds,
% M9 g1 [) u+ f+ P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; h7 N  n* s" {8 F
};
+ N2 X& x! C; s9 B; N; {
: \6 M1 [+ g7 z5 `4 g4 D  A" ustatic void led_dev_release(struct device *dev)
1 |- q: \: E9 `0 s% D{
3 w1 F; _" c3 q. s' f! F& r8 _" W$ }};+ B; X) w8 K3 y) ^

3 ~! V: r( c3 q$ P, Ostatic struct platform_device da850_evm_tl_leds_device = {
: m  N) T8 Y) Y: X        .name                = "leds-gpio",
# c4 T, c: v) j& v        .id                = 1,6 z9 i  H! n0 w$ o* A" u
        .dev = {
2 h/ u: e9 u, }                .platform_data = &da850_evm_tl_leds_pdata,+ F' f$ e( u" e6 d  U
                .release = led_dev_release,$ v( F: [/ n# [. [. _6 j
        }2 i4 z7 q1 k7 g0 G
};
; J+ c$ v' F6 R) R
  Y8 ], ^6 S# |! a, u0 V2 Zstatic int __init led_platform_init(void)
3 u' t' Y0 W7 J  t' H& e8 u{( C. g$ P$ `2 M* j
        int ret;
1 o  x1 m" b% ~) `#if 0- j1 }" E& S/ p" Z: y! Q: u6 ~4 o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 i2 {! g5 J3 H1 }0 m
        if (ret)
$ c/ [6 `/ X7 q0 f% _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) d  _9 B% B7 T; r. x; ?                                "%d\n", ret);$ R" h0 k* o# _% |1 u
#endif
3 X6 g! r4 ?' [% p; n' G% |        ret = platform_device_register(&da850_evm_tl_leds_device);6 }% ]  g/ I8 m; |3 X% u. `6 N' }" [
        if (ret)" n& b& t+ r% W$ j! n; N; \
                pr_warning("Could not register som GPIO expander LEDS");
+ U' m6 f: q$ M  `% ~# k        else
% C/ T9 b' w/ h" ?9 J8 S1 V% s4 z1 t                printk(KERN_INFO "LED register sucessful!\n");+ t( ~7 E% s* s) `
9 S. V# @+ E+ l) ^- _; B3 N
        return ret;; y6 S. P0 `5 a, l) X( q
}
! m- z7 D2 f& I, D" Y2 R7 ^$ W2 A/ f* L7 u
static void __exit led_platform_exit(void)7 b2 s$ k0 |8 ?! o# {* @" a+ I/ ?, z: b
{. }4 K! W4 d9 `  I# ^& [6 ^4 y
        platform_device_unregister(&da850_evm_tl_leds_device);
/ @, |4 m3 o  Q
& R: k, B4 c* x: o5 l        printk(KERN_INFO "LED unregister!\n");% E- f# T1 @0 C! y) N+ C0 M" z
}
' d. n2 g/ F, p) ]7 E  e0 f7 A; T/ ~) g& e( F! }0 u6 g+ w
module_init(led_platform_init);: a0 q5 i3 \2 j- Z$ C/ t  f: u
module_exit(led_platform_exit);' J& ^/ b- ?1 H3 G
7 F. e0 L2 Z% j2 A
MODULE_DESCRIPTION("Led platform driver");- D. K3 V# A! J0 d+ {
MODULE_AUTHOR("Tronlong");
" T4 C: M4 d  V1 n: r  [7 Z0 rMODULE_LICENSE("GPL");, O, O" E. C: Q, |* ]) n

% |( k) m$ n2 _& X2 i) h0 a( J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 15:47 , Processed in 0.040402 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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