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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 k! s! Y$ X+ L#include <linux/init.h>
' M7 P# s2 t6 A#include <linux/module.h>
& Q6 {! g) c# E, n# W  O- G; ~6 x2 v#include <linux/kernel.h>7 [( h. O; b$ B) d  h( ^
#include <linux/types.h>
) V2 I' R: v8 M5 b7 _#include <linux/gpio.h>& {; h( d* ^0 I( L
#include <linux/leds.h>& b6 G" A7 ^; B" z# G2 j  E2 l
#include <linux/platform_device.h>: i4 R$ q! [, D& C: W; S

. Q4 b2 f  Q; O2 a+ R#include <asm/mach-types.h>' M9 F( S# ]5 i9 a) U9 ~0 u: d
#include <asm/mach/arch.h>( K8 T& c$ K: g# N# P) c
#include <mach/da8xx.h>
1 t2 n* H5 O, A% ^#include <mach/mux.h>7 b" D/ Z5 l, v7 O5 R
% g6 L7 m" \9 v  H0 x. Z5 O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& }* Q, @4 J  c: y. B, e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 f) w; v6 g- o) Z3 t' N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 b. {, p' M4 f$ l9 N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( r4 q: G% p- B0 `: k( O% q
) f5 n: F7 I" O5 i' U
/* assign the tl som board LED-GPIOs*/
2 L: Y& E3 ~! t+ v0 Astatic const short da850_evm_tl_user_led_pins[] = {
6 r% F: d0 N9 o5 l  H        /* These pins are definition at <mach/mux.h> file */
& _! C/ {6 A1 W) `7 f/ N7 w6 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 `6 K# X1 o0 ?4 g$ u* T6 w        -1! p6 m# n- I; s. X  n
};2 s7 c( K! u  t6 Z! m0 A
' i: C, Q7 m6 T, j
static struct gpio_led da850_evm_tl_leds[] = {
5 [6 A- x0 o8 q8 S) J        {; m6 u) ?1 W: p; q' g. u  G
                .active_low = 0,
( _: _& M7 A$ t2 g; C1 g" o, G" X                .gpio = DA850_USER_LED0,9 J8 j# J9 b6 X
                .name = "user_led0",7 O5 Q3 ^  `  g' I1 c/ _: J. W6 q
                .default_trigger = "default-on",
" V: _: P% h; t        },+ \, M* G  g' N# _
        {
8 r6 R4 J$ _6 H                .active_low = 0,
4 W% E! l4 z$ r2 x1 z* ?                .gpio = DA850_USER_LED1,. |/ u8 v* D( D" ]0 G
                .name = "user_led1",
' U2 E; {) S" S( L, t                .default_trigger = "default-on",
5 c% d4 a# e  P% r* f8 O# [        },- r( r+ b! m5 ?, y3 O6 w# a
        {4 e1 {2 k. H  R1 I- `) L: ?  U
                .active_low = 0,
( ^# t: |; m$ e. |' H; b4 x8 c                .gpio = DA850_USER_LED2,  m6 l; n1 f/ A
                .name = "user_led2",2 b. Q& g' F- v! I/ N, }
                .default_trigger = "default-on",0 |5 L5 V6 B# [+ {7 {
        },! q" {2 {8 ?; ]7 [4 S
        {
" O$ s/ j* O- w5 l$ v9 T% V                .active_low = 0,
0 j& A; ]% P3 ]/ ?6 v) i5 F* }0 S                .gpio = DA850_USER_LED3,
7 V3 ^- l) z/ F  |+ M# S  X" ?                .name = "user_led3",
0 G( C1 ^; f' `- q& Q5 ]- L( i                .default_trigger = "default-on",+ w3 D1 X; k" p  o) Q% l1 U
        },
1 H# `: K. }% Q/ D};
0 d. s9 u. r- m+ O8 I6 ]
# U( E* q" u0 k) fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: q  F. d' q+ z7 N) T
        .leds = da850_evm_tl_leds,/ l# p1 e5 o$ ^: ~2 M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' E- m! c/ J) U3 r1 u: P};
/ R8 Q% E4 D5 I) m; i$ K1 i) W& n4 ~' i% I
static void led_dev_release(struct device *dev)9 y/ e1 S; \) h7 g
{
* z2 ~/ m6 G, x, B  D  }3 l};2 i4 `/ o  e4 R- O6 {* n

! ]7 }7 Q9 c# g5 c: mstatic struct platform_device da850_evm_tl_leds_device = {3 p6 l  s! M# ]7 c' |$ ]6 T; z
        .name                = "leds-gpio",
2 ?1 G; z% Z( h, C        .id                = 1,2 s  w( Y6 s& }
        .dev = {
* r0 {/ V, }) `- V0 g0 U! s                .platform_data = &da850_evm_tl_leds_pdata,- d+ W0 q1 M0 `
                .release = led_dev_release,. q+ i* f; J# s# e
        }
- b8 B- G5 N. Q7 B};0 D2 A7 W! R( |& O
- C5 Q/ @; E4 |' U( V0 |9 V/ `2 v
static int __init led_platform_init(void)# n% ?- Y( H3 y$ M
{
# P, h9 c" [0 ?6 x3 C, y# |. X        int ret;
' t, M( k# ]: X" ]& S- b#if 0
2 \, V3 h4 v1 U/ ~- Q: M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ l8 \1 x4 a0 K" ^6 W' @        if (ret)
8 e% y) s# j! ~' z  V% D8 w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' Y2 W) r, d, q8 b6 U; u                                "%d\n", ret);
3 |( K. [. k- S#endif3 b+ p0 S: F& X  e! ^/ F/ V+ Q. n
        ret = platform_device_register(&da850_evm_tl_leds_device);+ w* b0 c+ `. r$ o/ K2 t
        if (ret)
) m3 b9 H& n3 r* u8 @2 L$ M3 {                pr_warning("Could not register som GPIO expander LEDS");0 X: ]7 N  M# v1 z& l0 }
        else
( V; y9 l& Y3 z! P                printk(KERN_INFO "LED register sucessful!\n");
9 z/ K' Z8 V' [0 T0 h7 h/ l. S# B6 A5 l6 F' o4 o* y
        return ret;
+ ?3 m3 G; ]! r/ y; r8 W7 B/ I}
9 _' c: g/ v& a! G2 D3 Y2 F% H9 m: c2 l- M  V4 E7 G: x
static void __exit led_platform_exit(void)
' E3 _) Y% X+ L5 G) \+ y4 L6 ~8 B{& f; m% J5 y+ N7 q
        platform_device_unregister(&da850_evm_tl_leds_device);
( y2 D' o9 F  O% ?: h+ H" _+ U; I* ~0 }/ B& L2 u: U3 h2 o
        printk(KERN_INFO "LED unregister!\n");& n' I9 z( {; W* v8 O
}* u$ k4 ?& E- `4 c; p1 C, G
# y/ v+ P/ p$ A# q% G4 |
module_init(led_platform_init);  i  r7 H* i7 z1 n! J% v& p
module_exit(led_platform_exit);
) y+ s5 y/ E! G: P6 x
8 j1 p- V9 k% g& Y6 e$ N; Y" T5 hMODULE_DESCRIPTION("Led platform driver");
/ D! o  |. A% {6 P  l+ I# w! n$ o3 oMODULE_AUTHOR("Tronlong");
- o7 I1 N, D* J& z8 S( WMODULE_LICENSE("GPL");
$ a/ z% ?( H1 G8 }9 G# u, }+ l7 L: y  B, c) y  T3 W. z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-21 00:51 , Processed in 0.041017 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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