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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# \; J/ Z3 V% _. F; }
#include <linux/init.h>
! R, ?- W# x# v( w2 V3 o# R#include <linux/module.h>
5 w* b/ q: C8 y" s3 H2 A#include <linux/kernel.h>! U6 @) L/ N! [; B5 J
#include <linux/types.h>& f6 H6 n9 n1 I3 ~; {; y
#include <linux/gpio.h>
$ Z4 S3 s% l: Q0 J0 ^! F#include <linux/leds.h>
7 e! ?5 a2 H6 D1 X1 t' W#include <linux/platform_device.h>' C: a  U/ U  E" \# x+ b6 ~% M

2 h  b' y$ U# ?% l9 A6 [( b) v#include <asm/mach-types.h>0 O" W0 \$ J; X1 Y* h
#include <asm/mach/arch.h>7 r' j% Q+ n( U6 O3 j8 y
#include <mach/da8xx.h>- A6 Z( A  l" k
#include <mach/mux.h>
" o% p2 g% q% @: L0 F; n2 ]; @; j6 r, G# r  I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 E8 b/ J# Y, E0 f. N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 q9 b* F; J8 C6 a/ m- @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 X/ x7 q4 ^9 J& e5 w* t
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  D) ?) v* M$ S( V/ p, c& u1 X' t2 H
/* assign the tl som board LED-GPIOs*/
* ^9 B( i0 |5 u. Q& U+ |static const short da850_evm_tl_user_led_pins[] = {
  W3 d; R5 z; h  B7 a        /* These pins are definition at <mach/mux.h> file */) M' ?2 c0 G! {" w+ z7 U" M8 h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. Y  ?- D6 y: J  p  \/ L        -1
8 g* P/ s" W4 U8 v2 I};/ W" e2 p) y; r" e) {; \
0 Y/ u1 K" s, W/ [) X9 q: b# I  B
static struct gpio_led da850_evm_tl_leds[] = {
& |3 z# G- m+ x) N0 o; y1 Z' |        {9 q( O% m" N3 S9 R+ l
                .active_low = 0,' a/ U" {. n. F- k
                .gpio = DA850_USER_LED0,
7 P: G$ n$ `# P9 H0 U                .name = "user_led0",9 a& }1 G0 v8 C6 j. b
                .default_trigger = "default-on",
0 i! L8 s6 Y& ?8 p8 Z" p5 Z        },
7 A1 z! G) D4 I5 @& {" O        {
9 ~' p& }- }/ M* k; ?                .active_low = 0,4 f- S. \6 q2 B  G& G/ I
                .gpio = DA850_USER_LED1,) c  W  J1 z5 W( b; O
                .name = "user_led1",$ I6 W$ U' k! i5 |
                .default_trigger = "default-on"," M6 }3 |  g+ _' Y
        },( t" m, Z) Z  k$ t- ?  V
        {1 b+ b; d# t4 w" V4 h5 a
                .active_low = 0,
/ B* F" t$ K, ^- |2 \0 J& M                .gpio = DA850_USER_LED2,
5 x" y; @4 F7 z1 r' A+ |                .name = "user_led2",
8 ]7 ]3 t2 y. J  V* ^& y0 M' I                .default_trigger = "default-on",1 [" K& I9 A' R' Q
        },
( L' Q! o5 H% Z. K+ o        {
' a2 O$ L5 M7 d$ w3 w7 f- @                .active_low = 0,0 v  @5 A4 V5 m$ U# Z
                .gpio = DA850_USER_LED3,) M5 x. o3 a" W) @
                .name = "user_led3",0 k2 M3 }* ]# {. k4 W
                .default_trigger = "default-on",
+ H+ T" s- C/ {* U: S7 m& r& ]& h3 T        },
8 Y; X  I. e( f, l5 w1 i};
" C1 m' {! z! y$ D9 `8 O4 F* Z, Z' P+ [$ K9 w3 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" q, Y  ^# a/ A9 x4 T" X1 m8 m        .leds = da850_evm_tl_leds,
, ]+ ]) S  K4 X" @3 d  e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 n. K) ]9 s% f9 a/ F% y};
# A/ k. Y6 W4 y+ k5 o5 V6 \5 Z; q) o4 {/ s
static void led_dev_release(struct device *dev)
( B% W9 r4 F) s6 b" Q{0 l$ E7 a0 v, ^7 L2 T
};7 w% M! V" ^2 J  {5 ?" r9 N

! {$ p! V# S" O) j7 f% \* _/ Zstatic struct platform_device da850_evm_tl_leds_device = {
& B" [$ h. p7 F1 Y# q/ ]        .name                = "leds-gpio",9 _# G( ?  k8 E) y. J0 ]6 C
        .id                = 1,
2 E  b) I' J$ g, n3 h% e: `        .dev = {* r+ y; F9 @$ o( Z  o0 p; r; q5 l
                .platform_data = &da850_evm_tl_leds_pdata,
+ d7 p& M' s7 n( X7 v8 L1 F                .release = led_dev_release,
2 x: Z2 U9 a3 X        }; w( C# A. W! k0 R4 Q
};  o! f  K  [5 i- L

; Y; ~/ ]. q* S, L0 u. v) S9 x! @6 Estatic int __init led_platform_init(void)6 g3 s) p, h; E+ `: k
{4 E; t8 n, N: }
        int ret;; z. V; p  k4 w6 W: N3 G
#if 01 ?) W6 g% e1 @: g- J& k7 Y( b- |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 D; {# x! D7 r/ i. @1 F# _        if (ret)5 G% |  `+ Z, ^; e/ U+ G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 }) {3 o) q5 n& P6 i                                "%d\n", ret);/ `! O' k5 Q4 Z7 D( u3 b, V
#endif
" `5 Y) {$ Q( ?5 G% D+ g- y        ret = platform_device_register(&da850_evm_tl_leds_device);
2 n7 D! [1 Z) V7 y; C3 Z        if (ret)
9 c! |0 ~- E$ @( z7 ?3 n                pr_warning("Could not register som GPIO expander LEDS");- r. v! X6 t1 Z, @7 }
        else
$ m1 i5 q0 ]7 D- z" E                printk(KERN_INFO "LED register sucessful!\n");- `" N3 i/ G& m: t& H1 p1 Y! R1 Q
! _3 H& _3 d4 A- w, I; p! [
        return ret;
- D' b3 A0 ]7 M+ O6 t}
+ K. W& T- j% M2 e' a$ Q; v7 _' b
* V) V6 y4 m" f; Fstatic void __exit led_platform_exit(void)9 V# a  K/ d, m; Y* x2 \9 v6 B
{; E+ x6 t! q+ X9 V) R
        platform_device_unregister(&da850_evm_tl_leds_device);) M. F5 q& F( F6 B7 G0 t% [4 z
" L% C2 c: _$ ~" |
        printk(KERN_INFO "LED unregister!\n");* Y" ^1 |$ L( V$ q. l7 H
}
" R# L3 o. Q6 G- N9 _& T% A! Q2 q" D8 F6 o, \5 s
module_init(led_platform_init);- O9 {2 n/ V3 P  U4 o; q5 `: ~% n6 k
module_exit(led_platform_exit);
& r% C; c, g- I' h) x
2 g4 D9 q: w1 ~" G0 _) }" pMODULE_DESCRIPTION("Led platform driver");
- m5 v* W  I% S6 lMODULE_AUTHOR("Tronlong");; h; H* T" v. ~# Q5 K- B" C( n" A
MODULE_LICENSE("GPL");" w" G$ \7 S* n, f9 r8 ~

9 j* o2 j+ ^  j" u; Z6 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 15:03 , Processed in 0.058084 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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