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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' h6 @* |1 {$ k# p* p; A; Y#include <linux/init.h>
  l6 H% l6 J& `& C+ F, |#include <linux/module.h>
+ M+ y( H7 A% w- Q#include <linux/kernel.h>
! k( H2 x+ g0 _+ x( t#include <linux/types.h>
$ W- ]5 t. R7 O( L/ W& m& |1 `  [#include <linux/gpio.h>9 }5 V+ @' ~) E. F1 d- l  L$ p
#include <linux/leds.h>, ^0 U7 @3 D+ u7 c1 N  w, A
#include <linux/platform_device.h>
7 p( R1 H3 Y- S  O# u  R1 L; P7 G( p
#include <asm/mach-types.h>
  W+ P0 D* p* }#include <asm/mach/arch.h>, ]  R% U0 A9 D
#include <mach/da8xx.h>
! c9 g% b' f: g- `' N#include <mach/mux.h>
, _9 t4 t' ]& r: h5 M
7 f; E# O3 g7 K( x& q( v6 `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# \1 z; A' [4 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% p  q/ q7 U7 f- L5 _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 Z& r* @4 m  I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 S! z- s* b7 ~6 q3 z" _: ^; @, E$ q$ `
/* assign the tl som board LED-GPIOs*/, Q, ?* ?. W7 E, ], {+ N# c
static const short da850_evm_tl_user_led_pins[] = {
. _4 v2 ^, `, s        /* These pins are definition at <mach/mux.h> file */
( G' y5 G1 x9 ~% D8 t( {& K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; v3 c# P0 u8 Y- B$ M6 o4 {4 d
        -1
- u- j& d- w, Q1 T: D};
' q( o: }5 V0 T( Y) c, M" I& p' U/ J7 U' H  |) r3 f
static struct gpio_led da850_evm_tl_leds[] = {) q9 P1 r9 [; ]4 I: S0 c- G
        {
. D; o+ P( E) p. e+ v* F                .active_low = 0,
+ p+ O- W# U% }5 L                .gpio = DA850_USER_LED0,3 W7 c- q# q/ F
                .name = "user_led0",. a& `1 n+ z/ X' Z  S% a$ c
                .default_trigger = "default-on",0 F; q! R, z9 j
        },
( T5 \, p: v  n3 ^% Y( |6 j" J        {
; a  c3 L6 {  I                .active_low = 0,6 u% ^* H+ @3 R# R
                .gpio = DA850_USER_LED1,
' E! I& W- l9 Z% X9 p7 [  Y                .name = "user_led1",
* ]5 ]1 B. L& P                .default_trigger = "default-on",
4 C" x! h) y8 o  Z  w# M        },
- c6 i3 k2 ^' |9 B        {( z* y- i( m! K5 M+ N# N; N& q: o
                .active_low = 0,
( M; d! r+ ^* D5 w7 D                .gpio = DA850_USER_LED2," R; H7 i5 D7 a3 ^0 `
                .name = "user_led2",% ~5 Q: W7 l. ?! C8 a4 H" L! o
                .default_trigger = "default-on",: ^( w' d) i' c0 g3 Q
        },! B8 i- U( ]# q4 ^  l; a% K/ s( M
        {: B$ k! {. u0 j. U, N
                .active_low = 0,( z8 u/ n4 L0 f% d  g
                .gpio = DA850_USER_LED3,$ ?1 L9 N6 U- B' A, Y
                .name = "user_led3",9 @& f) _( N; R1 J$ p" k
                .default_trigger = "default-on",' {* \: r+ z9 w  p" u) H
        },/ W/ P" D3 i. h0 S! \" o3 T/ K
};
. a; ?9 L: s7 y: p" K
( n0 X1 x9 P( Q  {6 estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: H3 y1 @: J! s# h. L
        .leds = da850_evm_tl_leds,
7 c# ]& I  R6 ]* L6 x8 A1 V) f: C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  p: g% V" R6 v! }- s1 T' {
};
  z; s2 K; l6 ]! Y
' K; b- a2 T, R* w% a% c" d' Hstatic void led_dev_release(struct device *dev)' C* V3 X5 s- {8 L
{
9 Y7 Z2 b" p0 q$ n' C};
# o, s% E/ c, s2 h: J; l) h  l
9 ~$ F9 R# W, F. p6 Z6 o! {# `1 ?static struct platform_device da850_evm_tl_leds_device = {
- i- ^3 J4 {+ L7 f        .name                = "leds-gpio",
# z6 a* F! a& |" U' c% d3 j3 f- \        .id                = 1,
7 M. W8 h! x: ^7 F" l6 ]6 E  W        .dev = {3 M8 ]1 ^$ y2 \# t
                .platform_data = &da850_evm_tl_leds_pdata,
9 R0 f' s  ^- i) e                .release = led_dev_release,
. d: i3 U6 z) |+ Y        }" A1 A) t" R: f2 ^0 C0 @
};& b1 T- }: V* Q. X0 X" d
! V1 `2 k& d1 x/ e0 o
static int __init led_platform_init(void)
1 k) b) w& o0 E6 P{
- H' p$ D( q  g3 P, d; _8 T4 ^& z        int ret;2 U9 [+ t3 T. B% D9 S9 O
#if 0
+ X2 E, C2 k5 i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. L9 @# x7 ]0 n/ v' f
        if (ret)
6 c6 Q  \' t* @( Q$ B$ ~4 W/ e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 \  N. a2 R: ^/ x: ~  i
                                "%d\n", ret);
0 A3 o1 c( X2 {, r#endif
1 F( ^( H1 S# b' Q: D2 x! q        ret = platform_device_register(&da850_evm_tl_leds_device);8 H" D  x; d4 w( W. }6 _0 l
        if (ret)
8 I# {" y0 ~5 {" @+ O& t/ l1 R                pr_warning("Could not register som GPIO expander LEDS");. C. ^% l& B* D7 [" q3 M- g( @
        else1 a- y% X$ n8 A2 j; F3 B$ W* l
                printk(KERN_INFO "LED register sucessful!\n");( N' i1 a( ~. F* a

4 o- m" S# A, l* a        return ret;" z2 F4 x( e/ m9 n
}
3 W, ?( ^- P7 Q* k5 F4 s7 y" R- U# {2 `1 A& m
static void __exit led_platform_exit(void)- V: U9 c; I- u& ~( U
{) o! I2 A, e7 y# P5 A
        platform_device_unregister(&da850_evm_tl_leds_device);
# w" C. ]% e; X- `! y2 `, p; O/ b
, ^( A4 N/ O. h% T! n: R- D  B        printk(KERN_INFO "LED unregister!\n");
, S8 D1 {1 Y: Y3 y/ W3 I# V}( b6 ^% {* N' K- J9 }& X0 W2 E
$ D2 q, a' _$ }
module_init(led_platform_init);' Q7 w9 a: y0 f: v# o1 ]3 ~
module_exit(led_platform_exit);
0 l6 B! S8 ]# C4 m$ v
$ z9 p" Z+ H0 c( w% s* i, BMODULE_DESCRIPTION("Led platform driver");
8 E  L  b  Y' X& N# v/ DMODULE_AUTHOR("Tronlong");
! u; `! @: V' i4 T% t2 q/ ?8 n3 [: OMODULE_LICENSE("GPL");' f) Q3 c5 O- D+ T$ ~1 \1 S
; p. b! ^3 n5 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 23:47 , Processed in 0.034931 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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