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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 A( `0 ~: t" n, F9 ]
#include <linux/init.h>
* s! c3 W7 J" R. {, y0 F: S#include <linux/module.h>- H* P  r3 p1 w( m1 I9 q
#include <linux/kernel.h># ?4 ?2 w- l- g, [$ j8 n0 u
#include <linux/types.h>
% g" @+ |# m1 w3 E( Z#include <linux/gpio.h>+ q5 a' c3 q* m& ~% a! f+ t- @
#include <linux/leds.h># V- T; x, p% C$ c5 X0 p
#include <linux/platform_device.h>
  {/ H% Y0 `5 G
. T6 X9 S: l) z; I2 n#include <asm/mach-types.h>* B( h  |: R# q: \4 z$ V! |4 B
#include <asm/mach/arch.h>
1 ?' ?* P  I' D; `2 @' g- Y#include <mach/da8xx.h>2 r( Z3 ]4 E: K, B0 v' f
#include <mach/mux.h>7 D* r3 S+ z6 I& t7 w

' ]( w$ ?. p' U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 R8 v% L7 |" z% [% j4 ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); g& v7 J: F" [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# L9 g7 p; v* ^2 g: U; \2 [. K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( e6 b+ M7 b" U/ q5 |
& q; P8 l& Q9 I; r( e" j4 _6 ?
/* assign the tl som board LED-GPIOs*/$ q  u& s. W" n; A% x
static const short da850_evm_tl_user_led_pins[] = {
# W6 r# |& Q9 R3 y        /* These pins are definition at <mach/mux.h> file */
/ @4 Y! F$ {1 s, b- ~+ Q, M$ I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% v1 O9 ?( X) H( N6 \0 ?        -1( G2 i# l5 ^" H$ O+ z
};
6 Y0 Q5 P# {3 C+ Z" L% s/ m" T: {- |; \  N7 g. |
static struct gpio_led da850_evm_tl_leds[] = {  U5 i3 b3 p# c% `! U. S
        {
& B& X9 @. F! p( l: }                .active_low = 0,- x+ t3 x7 P% @3 Z1 Q4 {" a
                .gpio = DA850_USER_LED0,1 V. [' N) |4 L! ^1 a3 M; Q
                .name = "user_led0",& ]& m! Z6 ^, O) c/ ^  @7 T5 ?
                .default_trigger = "default-on",9 Y" k" M. z3 _" x7 E' u  P
        },2 j* j1 [9 e) M8 T2 \( ~; Y' X
        {
# C" Q+ u" Q$ g; F6 m4 j/ e                .active_low = 0,9 w3 }/ q! x7 ^* l% v" \; p
                .gpio = DA850_USER_LED1,
0 X6 h' P- D+ A3 o0 b/ F0 X8 o7 R                .name = "user_led1",' {  |7 s* K: ^" f) Y
                .default_trigger = "default-on",# `8 X' L: F/ I/ H' [
        },
' J2 w" X. s; a$ @, O; p) \        {
7 r9 l- L2 p+ l- V2 O1 C1 ~                .active_low = 0,0 h) {: z$ ^: n- Q5 b5 V
                .gpio = DA850_USER_LED2,, I% T! H, C  |9 m7 v) ~4 d2 U
                .name = "user_led2",1 i% ?  t' ]6 p
                .default_trigger = "default-on",7 ]" e& e! _9 d+ j- U' L0 a6 u" R3 @
        },
4 u, U( K+ e" K4 X; O8 {        {
8 S( i' Z: i( f                .active_low = 0,
* m& b$ E, D: Y% k: \                .gpio = DA850_USER_LED3,: e! N# I+ v5 `
                .name = "user_led3",. l8 j, D. h- l. V/ i1 w
                .default_trigger = "default-on",
& E5 r: P. w4 Z, `( V2 ~        },. D9 \* b/ T! Z& f0 n' h
};. i* }/ E( u0 w+ ?; J' V  l* U
+ r  |. c( I8 H2 V# x6 L# j2 c. h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, H# p' a/ Z1 A! Y# E
        .leds = da850_evm_tl_leds,0 d6 B* H- f, ?2 V9 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ F' O) z4 p  ^) J' Q};9 a7 Q# v; V) u
$ E3 ?% g4 H, D' p* r# `
static void led_dev_release(struct device *dev)
/ V- L! R* ~+ c7 m! Z; j{' _; l5 M& X" y( j, r! O8 `
};
. c0 W# _) z+ L- u
" |' W  U9 ~; k3 i) S& _( F; dstatic struct platform_device da850_evm_tl_leds_device = {
; E" M& q9 ]5 U$ Q' m        .name                = "leds-gpio",+ ]& G& H; v" |* L  C6 _/ D* F
        .id                = 1,
& m5 n8 a5 {8 P        .dev = {
# Q) D( ?) F) q+ Q& H' s                .platform_data = &da850_evm_tl_leds_pdata,
# f. M8 a7 o% H# c                .release = led_dev_release,
! k1 v4 j2 r1 v5 R+ t: |. F' P0 P        }6 E9 b$ p) @/ S! k
};! y' i" ~* H4 k6 A" q8 v2 W

) y6 k. R' A! x7 R" Gstatic int __init led_platform_init(void)
7 Z" k% ]( C3 w+ b{4 u2 n6 L' p1 U9 R
        int ret;2 F/ F* v( m! m
#if 07 V  i6 j$ `  s& f" C9 u% ^$ b% w. e' y/ h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  P) s1 p6 _& j+ @$ n# R$ [        if (ret)1 N! s- l1 l) O8 K6 a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 X* O, s: x! Y/ d& _. {& F
                                "%d\n", ret);
1 P7 t5 {6 `  J#endif
) _3 I, f9 h8 M9 B% L( G        ret = platform_device_register(&da850_evm_tl_leds_device);
- G- U; x5 t/ d8 C- r: \, R5 q2 V5 S        if (ret)
( l) `' v+ Y, i0 R4 z3 x' k                pr_warning("Could not register som GPIO expander LEDS");* M$ n/ ^: u1 ~8 k0 S
        else  P7 m8 {+ D  G
                printk(KERN_INFO "LED register sucessful!\n");1 X" c3 E, j8 S7 a  G  B
/ V" g, b% |  f0 I, U% B' f5 a
        return ret;
1 m  w  y: H: P4 N}1 L0 H) ~% a. j2 [+ ^; V* n% R/ Z3 L
0 t* w) m) Q% ^3 J4 W: \
static void __exit led_platform_exit(void)  P. ~1 q; Z$ v. y
{
, \" Y9 S: `2 d, u4 `        platform_device_unregister(&da850_evm_tl_leds_device);2 @( L7 z4 U" a) J( x  r" B7 H

) V, u- i/ _- G, j# f! U& H4 z; B        printk(KERN_INFO "LED unregister!\n");# T0 g" V- ^. [5 d; h
}+ Z$ v1 I" C' g

4 @9 S9 L% M, A# xmodule_init(led_platform_init);+ A( z) C/ L! o( [2 M$ K
module_exit(led_platform_exit);% f/ d: t& h6 a4 |5 y( k6 |" Z

5 T' k7 X) u2 s( UMODULE_DESCRIPTION("Led platform driver");0 ^9 o4 E. Z+ u% s) R. I
MODULE_AUTHOR("Tronlong");
7 i$ a4 R# h2 X4 mMODULE_LICENSE("GPL");
$ P5 Z* ~; T3 |' D& k  s
* \, ~# ?0 m+ E7 w1 p- c; L$ R% s1 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 05:00 , Processed in 0.038672 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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