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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: g  c% J- f7 E0 X# \
#include <linux/init.h>, [. x* |* h, I! G" Z- Q& ]9 r
#include <linux/module.h>
- [; R& x6 j; T5 e#include <linux/kernel.h>8 K2 h- H- I' \! ^
#include <linux/types.h>
/ g% Y! F4 V. I#include <linux/gpio.h>
" J# t+ g6 S  ]7 [0 p4 m- d9 V9 e#include <linux/leds.h>
! l' R. O* G! p1 I#include <linux/platform_device.h>3 T! _. ^$ o3 J! f1 T8 T
5 a8 F5 N! c% K4 w$ U) r/ ^
#include <asm/mach-types.h>, s" N* q  x  ?  i3 L* U; {3 d
#include <asm/mach/arch.h>' d, a; s% U; I* d* @
#include <mach/da8xx.h>
7 L* I9 ~, E4 F* g#include <mach/mux.h>
; p4 }' V' \0 s) I" i7 K5 h+ E) t+ I$ R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! y4 ?, V2 s- a$ J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  w% s+ H) Z- I9 i. E2 }9 k6 B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 m  `/ @0 F1 w" s) f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): f! V+ P+ W; c+ P) w  a

; ]; y5 Y" X; o/ q/* assign the tl som board LED-GPIOs*/2 q7 O/ n( h" Z
static const short da850_evm_tl_user_led_pins[] = {
8 ~  t! h0 Z. Y; R* z        /* These pins are definition at <mach/mux.h> file */3 r( O) T2 K- |, `+ p  x5 P- b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 \! G* o( g" I) J+ z! J        -1
5 u5 o$ U! Z# U0 W- Q  K0 e};( w: @* i* Z) n

2 e  i1 k, K6 R+ r1 y8 Ostatic struct gpio_led da850_evm_tl_leds[] = {
/ |5 `( E% d$ k9 }        {
  O7 G# y  L# M& {' }1 o                .active_low = 0,
! A1 |' f2 _2 d& V; J                .gpio = DA850_USER_LED0,7 h5 t) }( T# ~: }1 C/ b: p
                .name = "user_led0",
5 Z4 g$ M" E9 ~5 z6 G7 ?7 _                .default_trigger = "default-on",4 K. _8 C+ w' T
        },: T; ~6 K5 d8 d
        {! L" n; {+ m$ m5 L
                .active_low = 0,$ V  C7 u4 V0 d
                .gpio = DA850_USER_LED1,
" C- }/ w  E, I" V0 A- C& ~                .name = "user_led1",
% V7 S  v8 g. x6 B9 h- H/ ~                .default_trigger = "default-on",1 J* Z. o: J1 D+ E3 w- }% M, N& x
        },
9 ^; r+ p0 J! o, V+ d6 F% m% }        {2 o$ f2 W/ `* n& l
                .active_low = 0,) C, L; x& |8 G! w; X6 N4 A" V1 T
                .gpio = DA850_USER_LED2,% w% u% o0 `; A2 k7 K6 H& F3 [
                .name = "user_led2",$ L+ A0 A' ~4 Q, i0 B6 n
                .default_trigger = "default-on",8 J9 M" D+ |: z
        },
! a: o5 @+ k( D& g1 v1 M/ A# k        {
/ B/ J! f; p6 }& m# t! m, s                .active_low = 0,
8 ?% e0 |  y5 y                .gpio = DA850_USER_LED3,, v& G  }- k4 {, O
                .name = "user_led3",0 v4 n' n- R, @  {6 R3 m7 u, I6 |
                .default_trigger = "default-on",
& e+ d  N3 F8 |& z) l        },
. a$ B* K( P" O, X# Y( E};
$ e' ~. e& a2 q' u! x6 |% y4 x' n. [: ]4 ?' l' H3 `, {% r# P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: O0 M: x9 W/ \- c( [* N! u
        .leds = da850_evm_tl_leds,
" W! x! O8 z5 l2 C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ A; f0 n1 u6 e# n% I$ I3 W};
2 @' J- c! x0 D- G8 w, Y, C
, U& r0 x- @; rstatic void led_dev_release(struct device *dev)
, J  U& w; ]$ e+ c{" x7 ~# m" y+ N
};
7 T; l* \8 P8 v
! o7 L" a8 G- `0 }) tstatic struct platform_device da850_evm_tl_leds_device = {
4 K8 F; h" T3 I! N. \: _: @! `        .name                = "leds-gpio",
2 X, O( }1 q0 h- B" ~( Y        .id                = 1,0 L: `4 o9 i* e7 }
        .dev = {
, A" G( ?7 Y& v5 }                .platform_data = &da850_evm_tl_leds_pdata,, _* ]9 V& W0 C
                .release = led_dev_release,8 [: T" s+ M9 o& B+ P, q. Q
        }
2 L! C1 G) y# I! b6 M% v% W$ _};
5 m$ j/ U6 F) M! c$ W8 K* l. q
, m) k! W5 q+ v9 pstatic int __init led_platform_init(void)& y/ O0 Z- j' k8 x. x
{
: z  @! [2 X, I/ n* |: ~        int ret;
, k# S7 f0 B8 O. Y7 p#if 0
7 ^$ Z) Q+ e" l1 {2 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% `/ g3 a+ X) o& W7 o3 ~; v: M
        if (ret)/ F3 Z2 q0 e! W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: M; q( f: K7 w0 k- ~' R, d& Z, K% W                                "%d\n", ret);
# g2 F/ V6 D6 v  q#endif6 O, _) j5 o# E, h
        ret = platform_device_register(&da850_evm_tl_leds_device);
) T9 E4 l+ O8 [0 |# |3 F9 ]- S0 }. o        if (ret)
) W6 r* |6 ?* O4 K3 C& g5 e. M# R# \                pr_warning("Could not register som GPIO expander LEDS");
6 q0 |$ E! Q( ^2 u  a4 Y        else
: K4 `! j9 T, t( m% g! S# T, X                printk(KERN_INFO "LED register sucessful!\n");, E9 y) K% W) {( u( t0 |

7 L1 U: \4 H5 f        return ret;
2 ?  f; t# z; q, I* i}
% C9 Z9 T$ a% O7 _; @- b4 c$ A8 u+ r
9 A: S; |$ h# `- z5 E( k4 Pstatic void __exit led_platform_exit(void)
, r' }9 f7 j( G( R{
, U. M1 q1 B( ]) @( g) M. H        platform_device_unregister(&da850_evm_tl_leds_device);
0 _; P2 m* x' o% F! c
) r- j! Y. G1 _; m3 X        printk(KERN_INFO "LED unregister!\n");% i* P" `# q/ K- J) w; g
}
' J4 t" R: @0 @: S/ C4 ~3 A" }% ~  I1 V/ E6 W. T8 {, S
module_init(led_platform_init);
- d: e) V( Q1 j/ \9 e/ ]+ rmodule_exit(led_platform_exit);
: S. L7 ^  N; {$ d. V  p0 T/ ]) m- U' @# p+ ~4 t& |' `9 Z
MODULE_DESCRIPTION("Led platform driver");
% n! H5 [) E+ w7 D: ^$ P$ c" rMODULE_AUTHOR("Tronlong");
$ `% Z2 B5 A7 \MODULE_LICENSE("GPL");) z. @9 u" W2 x- F9 f: G2 e3 s5 i

" H9 ]4 M1 q0 @4 V: k7 q4 c- t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 22:42 , Processed in 0.040183 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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