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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; c- a* P8 w6 B: |9 y5 b8 D
#include <linux/init.h>
8 @2 |% k& w  ?$ q#include <linux/module.h>- C: _; R( k% s8 p/ _, |7 V) o  P
#include <linux/kernel.h>
& V# [( _, X6 h; x$ Z#include <linux/types.h>9 W- n  i. |! j  q; p; Z
#include <linux/gpio.h>7 A0 E8 d) `6 i2 N
#include <linux/leds.h>
2 \- w+ m; v6 p" x8 ]+ ^' n. O#include <linux/platform_device.h>
& r6 R  r; |) n
( F, a. v/ n3 ]' ^" g* f* ^#include <asm/mach-types.h>0 {: \& y: y5 p, e
#include <asm/mach/arch.h>+ k! q% Q- p. M4 S
#include <mach/da8xx.h>
% Z# ?! M' G, u5 K( V2 S/ k#include <mach/mux.h>
1 B* U# ]8 o- D6 ]9 \' C
# X5 C: r! N3 w4 S2 o) K2 T) m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: ^) h. V5 B3 r/ }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 \2 r. d+ Y6 Y: @, u$ {  u- C+ r3 Z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% w  \% P9 O/ @9 {# i0 F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 A/ ?5 @+ v0 x( e$ i
8 W) ?& I6 h' X' L' ]' a/* assign the tl som board LED-GPIOs*/6 y- ?( H; W2 r: r1 k  g
static const short da850_evm_tl_user_led_pins[] = {
" h' Q0 B8 E; L' [9 [: d3 n8 O        /* These pins are definition at <mach/mux.h> file */! _; t/ F7 }, D( v: e$ l8 Q, Y. H- O& [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- p" [. `+ g# }( F! C        -1+ s1 d8 {8 k6 o3 {
};/ t- m3 g9 f/ V: B; @) h
4 T5 ~# E: k" b+ H/ l
static struct gpio_led da850_evm_tl_leds[] = {
7 D4 U* R6 f! l8 H" H0 f9 e        {
3 ?: d+ j( y: f3 j- Y9 X2 c                .active_low = 0,
5 \5 _  Y+ ~6 f8 u$ m                .gpio = DA850_USER_LED0,
! ^7 B* B9 l1 X8 t                .name = "user_led0",
; l+ N2 [' m, r/ e                .default_trigger = "default-on",
4 g8 X$ y7 Z, s/ e) i' R4 ^( ]$ V        },1 \, X( X' Y2 L9 g9 c
        {( [6 Q: k+ m! ?7 P* i$ p
                .active_low = 0,/ p- ]5 C. C' V4 E* o) G1 N
                .gpio = DA850_USER_LED1,
$ R' ^# r: J/ a+ ^7 l0 W& T4 b                .name = "user_led1",0 N4 S6 H+ E& B4 n
                .default_trigger = "default-on",
' W# k; ~" j! U5 s1 R' A: I+ O' @        },
% O# z2 o3 n* K% T        {
3 }0 m6 }! w! ?' j1 |. u! |; o9 N                .active_low = 0,  S! |# h3 t; D/ t5 e3 w: x0 `
                .gpio = DA850_USER_LED2,2 m( }. f1 A5 j' ]2 i: q; _. O
                .name = "user_led2",) K9 S7 ]  W6 D6 ?! D% t' v
                .default_trigger = "default-on",
4 Z  c( Q' ?$ R& o        },2 |7 g$ [/ P5 ?9 F, }
        {3 H! q- }, }: Q
                .active_low = 0,- z& B8 e' M: U4 Z
                .gpio = DA850_USER_LED3,
1 x) U! A1 l3 `                .name = "user_led3",9 \0 l$ `) G2 k- q( U
                .default_trigger = "default-on",* c* k" y# H4 n& C8 ~
        },$ ?1 {* W+ M! ]5 q2 m/ ~' x4 ~$ S3 X" `
};0 |, w' y; x! h+ S) @+ Z. i
" N6 H9 v- B% e" H3 J1 _% D1 b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 P( r7 k7 F  r0 h3 ^8 k
        .leds = da850_evm_tl_leds,) t6 A5 f9 s3 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 J6 e  ~) n' h0 x! y( s
};) u4 ^* A: x5 Q" s2 c. Z  z
) ?( H' F4 h  H' u
static void led_dev_release(struct device *dev)0 I! a4 k8 S4 _* N
{. I& |( v" |/ B( j. ~/ k. S
};
) K0 T9 P  S3 K$ Y; ~( K; y( g1 o) i9 i) O, |7 g# ~
static struct platform_device da850_evm_tl_leds_device = {  Z  Q6 r1 \) a/ S) K9 w) y
        .name                = "leds-gpio",0 U$ B  m. A3 x; a, s0 E/ U
        .id                = 1,
6 h3 ]! }) R2 u/ x8 p        .dev = {
" s* o& Y& i0 @- e- a                .platform_data = &da850_evm_tl_leds_pdata,  \- u3 r9 n( k: H2 A
                .release = led_dev_release,+ n7 P$ B# S! r) D0 S
        }
1 ~; H3 e+ r3 Q+ r$ R};
, d1 `2 Q6 E3 S# k8 s/ X! [% h9 S5 [
static int __init led_platform_init(void)
! l: N. c* e3 D* u) Y( n4 Y' _{
6 W% E0 ^' m/ T        int ret;) H) ^% S: @6 }; _
#if 0- `: t- d/ T* v$ u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' P1 T$ k% p8 h
        if (ret)
/ X; g5 ~- \. v" Q- x7 `9 H  |- ]( g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: u  a' V. ^0 K. N  }( S" C/ k) ~( f% k                                "%d\n", ret);4 n% f! W6 d+ Y; @7 i. @
#endif6 [% F3 o0 k4 v8 [$ P  F
        ret = platform_device_register(&da850_evm_tl_leds_device);. |4 D8 f9 u( {" k  e5 `
        if (ret)* Q6 G6 r- M. E6 N9 y+ W
                pr_warning("Could not register som GPIO expander LEDS");
* P$ Z3 _9 i1 z  }        else
( i, A& [5 u8 x% ?5 u2 P                printk(KERN_INFO "LED register sucessful!\n");7 v0 X) I, ]! q- v, q9 i8 n2 v, F$ a+ I2 e

+ \. c5 l* @1 l6 Y+ a# }        return ret;
% q/ _- l6 `* I6 k4 B4 I}7 S$ v8 l2 S; {& U  {  f  n1 y0 q+ n
' P4 a. K& _7 K+ q8 X6 ]; f
static void __exit led_platform_exit(void)
" m* y. X/ V( ~, k{
/ j! O7 v7 l" F6 n5 E2 N2 `        platform_device_unregister(&da850_evm_tl_leds_device);6 X2 X$ Z$ D4 D: q! P. E
- `( d; ?  z6 n6 m
        printk(KERN_INFO "LED unregister!\n");- B5 h9 K1 y, R: X; ]& D
}. @# A% M1 B% a# |5 x% r

' @1 c; k: r7 R6 }: R9 p4 qmodule_init(led_platform_init);( @, R' Q: ^& _% A
module_exit(led_platform_exit);
* ^4 |6 d% c' `& u7 E
6 L. C7 T% p7 @! oMODULE_DESCRIPTION("Led platform driver");
# A. h# `& ?$ ]5 T! hMODULE_AUTHOR("Tronlong");" W# ~) T) s6 J  I1 [4 s; _) ~3 q
MODULE_LICENSE("GPL");
+ O/ A/ f! U  \2 t/ b7 a% w8 F
9 [/ E- n3 I3 j) P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-6 07:31 , Processed in 0.041075 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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