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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; `$ B0 d; c# E6 [( Z& o/ Y
#include <linux/init.h>
8 M3 J7 p1 b9 m/ R  R! h" F" j#include <linux/module.h>9 W' r' x6 {: P5 Y  Q  N3 k- n- \
#include <linux/kernel.h>/ B7 u, n4 q; E: A/ |( |
#include <linux/types.h>$ T* D8 I# K0 d, W
#include <linux/gpio.h>! T  r: `9 C, ^+ N
#include <linux/leds.h>) k3 k) c# F7 o' g7 v- f; _2 k
#include <linux/platform_device.h>2 F! @; b2 m4 A$ \1 J) F
1 V0 j2 z8 ^% L, [2 W* _
#include <asm/mach-types.h>
  A, C! J+ o0 v% t( t#include <asm/mach/arch.h>
7 R1 `1 L! d3 L% p#include <mach/da8xx.h>
3 M' [# I3 y; y# ~, |* J+ m#include <mach/mux.h>9 ~. o. S: y; s3 e
3 E# \' Z1 R$ F8 y8 ]5 T( m- Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( L+ |9 w6 B2 H( v# k0 F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 @8 A' j2 j+ ^) L4 L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' B+ l; L) ?; T; U% J! f/ O- q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; ]4 K7 }0 Y0 k: k' N1 L# x
: u3 E- x$ P9 j) X( h9 W2 Z/* assign the tl som board LED-GPIOs*/
, D. d& s! c* Pstatic const short da850_evm_tl_user_led_pins[] = {0 i  S4 H" {" b& Z+ Q& s1 D+ T% h
        /* These pins are definition at <mach/mux.h> file */3 L0 R8 X: F6 u4 E. ]  V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 L3 e9 b& S9 L# I( `
        -1
. p# I) o+ s! ?* y& M};! _0 a' K% _$ E- F  X$ V
- ]& w- @- z6 S. _4 h  }
static struct gpio_led da850_evm_tl_leds[] = {( i8 U1 n. X- s. t1 }  F+ t+ Q
        {
1 i. F5 k9 _+ a1 C/ B                .active_low = 0,' H' O! b' W# g
                .gpio = DA850_USER_LED0,
( p" F3 V/ n" H; V, M3 ~6 r% i                .name = "user_led0",
% c7 a: d$ v, }$ Z  b: c9 ]                .default_trigger = "default-on",
, v, B8 g- j" b7 j8 \1 U. g        },
3 h3 c+ R( K( h0 Y        {
# H; [2 N7 w; O( L                .active_low = 0,
3 @9 w! c1 r9 e' Q: h% {- p0 w                .gpio = DA850_USER_LED1,
- T8 P  y* d  r                .name = "user_led1",
' |$ t' u! p8 l6 ]3 {7 q                .default_trigger = "default-on",
0 h' a% ~" [7 }4 T. u$ O7 n        },6 d, m8 g6 T% O& [& L2 N: B- C
        {* r( {4 J% M8 t' m( v! U
                .active_low = 0,: z1 K; Y/ `! B
                .gpio = DA850_USER_LED2,) d2 B# z8 L4 ?2 k: W
                .name = "user_led2",/ T. r( Y; S& n1 R& R5 [
                .default_trigger = "default-on",. Y4 x' n. v) a# o1 w0 q  z# E8 Q* E
        },
6 ]$ ^1 H9 G: a% v; H        {
' e" Z* g) c2 h# K# N6 g5 k                .active_low = 0,
; j0 @- V1 D3 Q# }. Z                .gpio = DA850_USER_LED3,
2 }3 H% V' ?" K5 i9 U( u# x3 ^  h. g                .name = "user_led3",2 x6 f* r9 R" ]2 ?. [0 j5 k/ E( E
                .default_trigger = "default-on",
6 x( n. v0 X* \: K2 K3 M        },
" r/ l! _6 \% r' B! }4 ^7 V( y};' |6 v' O" k6 D/ w$ g6 i4 K
6 h2 P3 C0 p7 w% B( O4 D' x9 o: j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 o+ ~( H$ A. S9 F' c4 ]8 R        .leds = da850_evm_tl_leds,0 G! R$ X9 A  X0 y! _! j! R7 ~( j8 s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% ?  s4 w; O' f8 M};3 @% K& Q0 N8 Q
! ^2 L. G! G: O: Y4 M) b3 y
static void led_dev_release(struct device *dev)6 n( |/ p8 o& R! |6 }( v7 A0 z. _
{
/ d/ d7 `0 r  q8 Q5 J};
# D2 }1 G/ \1 s( j
3 \( s5 ?4 f  `3 I+ X5 qstatic struct platform_device da850_evm_tl_leds_device = {
" m% U9 r: O" s: S) V+ |8 u  G        .name                = "leds-gpio",9 [& t$ R+ H8 C7 ], u% d( i
        .id                = 1,
8 G( W7 G  c9 ]. c+ f% E        .dev = {
  I7 i5 @" U- ?2 r; i7 a  R                .platform_data = &da850_evm_tl_leds_pdata,- M* h, H. Z0 s; C
                .release = led_dev_release,7 U8 E/ ]$ d  l2 b/ T2 |
        }* j0 w# Q/ O( F- n
};
. y  }4 B% H3 x# e: [0 n
( _! V; f& T; I# _/ \static int __init led_platform_init(void)8 J9 J' r9 s" h3 c4 I  _& b. `$ A
{+ o. y+ M9 c; Q3 S% c
        int ret;
1 H+ L1 t; w: P#if 0  U' n; G! {4 g1 z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! W9 M4 a, }8 Z7 d& r5 m        if (ret)
% n% W, P( O( }6 o6 ]8 `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 s+ f$ `! r1 R8 j8 l: H
                                "%d\n", ret);
. B/ _5 S' F6 M; V$ f/ \% [2 }4 F#endif
4 P7 w7 n$ U5 }' r        ret = platform_device_register(&da850_evm_tl_leds_device);
' k" l2 Q* b. V5 E( Y# ~        if (ret)
5 `% `, z9 l7 S1 k; L2 V& L                pr_warning("Could not register som GPIO expander LEDS");$ C. p& P  G1 B: G/ P+ _
        else
! M1 ?! Z- p, W6 h# J, C& m$ ?) ^                printk(KERN_INFO "LED register sucessful!\n");9 i  J# k* x( o

2 V% R- F" S$ v$ X- ~        return ret;
$ z& v" |* G: N}
- A$ }. a+ A# d; d9 `: S7 h. E- m# a" l: m5 U
static void __exit led_platform_exit(void)" d0 w( c; O. f& ?
{, O* |8 q6 Z7 z( }% o1 S. D
        platform_device_unregister(&da850_evm_tl_leds_device);+ o  f9 @, |! S6 t0 o& Q* ]$ |& T- N

: x! w. i  E/ t2 e3 L        printk(KERN_INFO "LED unregister!\n");% J6 _2 K# c2 j9 z. e
}% A% [; V9 b9 K; S* j1 h+ e+ |

7 r9 s% b" z4 p" h  _7 N6 P, o4 _5 _) kmodule_init(led_platform_init);' |  t, M! ^3 }9 `1 o$ T! J! Z
module_exit(led_platform_exit);1 |' h- j6 n' K, y; L& V. ^

0 e! q' `" v, K9 b" nMODULE_DESCRIPTION("Led platform driver");0 y1 [  N& {; r  z$ J& v
MODULE_AUTHOR("Tronlong");7 p# i& W. P, |
MODULE_LICENSE("GPL");2 a, P4 u2 E$ W2 Z) O3 v
7 \# \$ j, y7 B' Y% T" b& c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-25 04:35 , Processed in 0.042212 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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