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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 U1 W7 _1 E! g) q$ p* E
#include <linux/init.h>
1 J. @( H3 \! n2 {#include <linux/module.h>: r2 I" _3 ^0 G1 P
#include <linux/kernel.h>9 F! ]) h- ^- _
#include <linux/types.h>
! c7 g/ \1 [, G' ^! u#include <linux/gpio.h>
/ L" B: a! w* T' W/ s#include <linux/leds.h>9 C) O% }, j4 z! o
#include <linux/platform_device.h>! j1 V; K" i1 H! P% g) ]8 B
' f+ ~) c5 |# q) H. B
#include <asm/mach-types.h>3 ?1 k0 j- x  e
#include <asm/mach/arch.h>" S! c* T" u7 B$ ~# ?: V
#include <mach/da8xx.h>; I1 d, b. c6 V2 g& }; f2 P
#include <mach/mux.h>  J) R! i) @$ j$ m$ \5 @* @& Y, R
# v0 d8 t1 F/ t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, h7 T7 p* _- Q& t" O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 i& D$ F2 w% X# ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, j, u* ?8 Z. `/ j! V% E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: ]$ ?  Q/ N* h6 P8 {! \6 B$ a
* L" V5 C# z  w0 S8 s  \# X5 f/* assign the tl som board LED-GPIOs*/
+ P5 j, H0 z' wstatic const short da850_evm_tl_user_led_pins[] = {( E, [5 i" |3 J" ~) u5 k
        /* These pins are definition at <mach/mux.h> file */
" ~6 U% B( d( Z, i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' K: \' r$ [$ n/ f
        -11 j% |4 v! |& X* I- `6 z
};
+ }4 l7 K/ Y9 H* q3 m8 [) J% i, y9 `" W5 B" Z
static struct gpio_led da850_evm_tl_leds[] = {$ ?5 e+ O' L8 P5 [+ @, B
        {/ `0 \* A- Z- x6 W- F
                .active_low = 0,
* j8 L* u/ u" Y1 z: P4 z4 }                .gpio = DA850_USER_LED0,
4 q, V+ |- H6 C3 B% X- j; V1 N                .name = "user_led0",
* ]7 R7 H* z" F3 M                .default_trigger = "default-on",
# q! f  ?2 e* f( h7 y        },
: S. S+ a; |1 F. v; T. \! m/ Z$ ~        {$ {0 r) m3 Z7 C# m7 N0 S: g$ E5 E
                .active_low = 0,
4 N# E% e" |8 ]5 y: k% f' U                .gpio = DA850_USER_LED1,6 X$ o( C! ?2 B. a" J5 {% x  q
                .name = "user_led1",
7 h' z  J, T% w6 ]7 T* @( d                .default_trigger = "default-on",
( w* t+ S5 w4 \3 z- V        },
8 S3 M! W- ?$ m1 Z6 N5 a        {
: A/ [8 Z* b% W8 y- N( b: L                .active_low = 0,! T( w9 ?3 B5 z4 \  s4 B. |5 Z4 L
                .gpio = DA850_USER_LED2,9 d3 w& r7 a& o6 R) ^$ `
                .name = "user_led2",
  G4 {3 Z  |1 X' m                .default_trigger = "default-on",
5 T1 E. H6 f. L$ B) O! A" _        },
+ y: ]5 O! M  q        {
$ w8 N- k$ I4 N; |  p2 ?                .active_low = 0,
9 C" r# k# Q% E+ U: R5 x                .gpio = DA850_USER_LED3,5 G4 l$ n7 \8 A) q0 y+ y0 T
                .name = "user_led3",
' U5 Y, `2 f3 g- J7 ~" n: m                .default_trigger = "default-on",
% i& ~' _3 Z: N9 Q* Z0 t( y& t, W        },: ~9 E& U: x$ L# Y+ Z5 S! }
};0 h6 e6 [  C$ V9 S9 J6 t

$ ^% X/ v$ q" gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, g$ h" {5 r6 Z4 G2 Z) {' {5 X
        .leds = da850_evm_tl_leds,5 G0 {8 m2 `5 z/ M3 H6 f4 d% [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% u8 K. f6 k6 B};
: \# X! O" C; L! Q) s9 U+ l5 S9 g8 t7 ^
static void led_dev_release(struct device *dev)
9 i( L3 E/ h# [{5 Q8 i5 [8 _# r) r0 T" _2 \9 w
};
9 z; q9 {6 _4 V! J- A" s& Y- v# O; g2 h' u6 M
static struct platform_device da850_evm_tl_leds_device = {7 {$ n" h5 R+ x  `, e9 e9 u
        .name                = "leds-gpio",' p2 e. m- W& p8 P
        .id                = 1,& W( |: V% m" T) w
        .dev = {
* z  b8 ]+ r7 ^) n2 V  Q; n                .platform_data = &da850_evm_tl_leds_pdata,3 L. G! J/ g  W7 b% U4 ~& S
                .release = led_dev_release,4 e% b5 i- z1 L
        }2 E: u9 J6 W; T/ m
};
$ P/ Z5 U6 I) X
; z! x3 X* l) a2 _, Nstatic int __init led_platform_init(void)
2 C) ?, {4 p% {. a" g* d2 y4 W3 w{& E$ P# L, n5 P( B2 S9 U* D# J9 I3 c
        int ret;
5 k( ^0 H1 E* c; [2 j+ r. e#if 0
; J' @! J+ I3 l" ?7 [$ w3 X. g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! U4 U0 l  y" i: K0 ]" B
        if (ret)
1 a5 f' w9 u& a% Z" I+ U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- G* q# Y8 \" T8 u( k
                                "%d\n", ret);
) |" e6 P" C0 p# X#endif- H9 V$ |( O, H; e
        ret = platform_device_register(&da850_evm_tl_leds_device);' w) u6 j3 x2 {8 l. v9 H
        if (ret)
4 `+ s+ l+ I4 i0 O  l                pr_warning("Could not register som GPIO expander LEDS");# h7 q( L% d. u; N7 e
        else
+ j4 d4 c: M9 D' P' f                printk(KERN_INFO "LED register sucessful!\n");
9 z8 N: Q$ h$ ^5 y4 b( {6 \) F/ j8 G
( X0 v. N, k3 b& K' \( x        return ret;! X1 P: v, o' u/ l- p4 x* H# f
}) ~) h. h% b; J3 a# ~

) F  b* X4 O/ @' v1 Astatic void __exit led_platform_exit(void)- y5 x" Z. ], S( x4 ~' R  c7 O
{- F' a0 b4 R1 |
        platform_device_unregister(&da850_evm_tl_leds_device);  N' J; n' [- X. Q6 X9 E
5 G7 u! Q; N: W8 j' t+ A) |7 H, P* W
        printk(KERN_INFO "LED unregister!\n");% K5 J' s/ @8 N* D" Y$ Q1 C
}
7 ^; j8 d$ k$ O$ T- F' w! r
* K2 f1 i0 b' H5 n! G9 Zmodule_init(led_platform_init);
  \( m' W* v; Qmodule_exit(led_platform_exit);
, Q" N2 {0 K: n+ q: \0 i8 }
( t; E; v. K3 L' \5 MMODULE_DESCRIPTION("Led platform driver");
; H# s0 k3 Q5 S6 R/ T; c5 IMODULE_AUTHOR("Tronlong");$ Q) w% L4 z  y. z# f
MODULE_LICENSE("GPL");) y! ^. K/ u- R  r$ v3 ?# X9 t3 F3 B

) d3 @2 i; e/ p( P1 T2 D: j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-21 23:23 , Processed in 0.039338 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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