程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 P0 \, w5 a7 y  q' p: ^3 a#include <linux/init.h>7 O( k9 u4 ^* w( ?6 I# T
#include <linux/module.h>
% k4 y: U( r2 u( y. j#include <linux/kernel.h>
" x' v0 T" G8 z: f4 \$ K#include <linux/types.h>
4 p- A) T  I# P( Y#include <linux/gpio.h>
% z3 x$ l0 x% x5 P4 J% J* N% ~#include <linux/leds.h>" w$ a1 M  S$ x0 A: A" Y. O# ^, r3 u
#include <linux/platform_device.h>; F8 \% l6 V: f) |* Q3 D

- z  O% P+ D  B) z& h/ L3 c#include <asm/mach-types.h>
4 C# f5 m2 U: R/ U( i9 C#include <asm/mach/arch.h>3 s. U) \8 C  R1 q& J9 \+ ~
#include <mach/da8xx.h>3 a' z* e4 P/ V( m5 t6 K% S
#include <mach/mux.h>: l1 v0 o4 E' ]3 ]4 }& j3 `
. E! l. V3 M3 j7 N2 O* Y* C/ P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 q  _% a  B" b8 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) J1 K3 w# w: j# {3 V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 Y& a7 b3 R0 |* [3 V: Z2 u: E( R3 P) s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) `6 C  ]; n+ q4 X7 T

, Q9 o" G5 _! k) Q5 O/* assign the tl som board LED-GPIOs*/
; |# {2 s; L% H2 Vstatic const short da850_evm_tl_user_led_pins[] = {
9 G3 p* O# k9 j( B0 e4 h        /* These pins are definition at <mach/mux.h> file */1 f" x- [3 o7 T" Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- v, {6 y3 h6 ?, [* I/ x        -1
, B# N6 S8 n$ v; \6 t6 f9 `  O) O};
" O8 z& _% m% Z% K
* @( i- J9 F) s: o" \8 ~/ rstatic struct gpio_led da850_evm_tl_leds[] = {
0 X4 D3 b. t3 q* E5 v* O  ^$ t        {
% S8 I8 P  \+ D                .active_low = 0,
! g. U- p; @- S                .gpio = DA850_USER_LED0,
+ ~: ?- j4 M2 K+ Q9 m; N0 j                .name = "user_led0",
( i8 }- [' ?& ]0 V; ^4 h( U                .default_trigger = "default-on",
# ~. k+ f+ d, z- z# t, Q        },8 o: x: h# C' Z
        {
" W+ K% A' x  m3 X# w/ K1 i+ c( s                .active_low = 0,' `; F9 h6 B/ C- B* [
                .gpio = DA850_USER_LED1,8 v$ i3 H  z: l+ @; X' z; r
                .name = "user_led1",$ W; ^) l4 ?9 P7 ^: ]3 z, r
                .default_trigger = "default-on",
! Z$ |/ u2 W7 E0 Y2 U        },
6 s6 ]/ k8 B% t        {
* `4 ^- P; H* R/ G                .active_low = 0,1 d( r" J% p( B% r) a
                .gpio = DA850_USER_LED2,
; H0 h" @, u8 m) `( O  D, c# ?                .name = "user_led2",
6 R! m. K, N! c8 q                .default_trigger = "default-on",. D# T2 R+ O6 }1 U8 b$ ?
        },
6 b! Z7 h; H, k8 r' T$ u2 ^        {& I/ Q$ e, E0 j- h
                .active_low = 0,
6 E, K+ M$ J& e% I, D, ?$ X; X                .gpio = DA850_USER_LED3,- r4 W0 f4 e, x# r7 V$ q: ?+ V4 l* _
                .name = "user_led3",
3 q7 q2 t7 N: F: K9 l                .default_trigger = "default-on",
- Y; B+ w0 O3 _7 r        },: m% Y( ^. D5 i# {& f  G
};- b# H, M- w. O6 j, n1 ?

" R2 B+ M* L% t3 X4 s7 v: qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% v8 {2 d/ G' H, C, k
        .leds = da850_evm_tl_leds,: O. W5 l) P  k) p4 k/ }0 C0 D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. U: A- G2 ~6 j* B. M+ j};
- ~! q6 C/ f* d: |) o- l, W( K
7 I! V6 A9 Z9 d$ G( E/ Fstatic void led_dev_release(struct device *dev)
& |! ]% S0 n+ O% a/ [{5 A! f4 g! P3 r+ r  s9 ~
};) Y; K, D3 c) k$ i1 v8 T
# g+ C+ e, F/ p3 ]4 |+ _. X' @6 h
static struct platform_device da850_evm_tl_leds_device = {
' {4 C: ]2 d% k7 m& ^        .name                = "leds-gpio",
9 A/ P6 \- T& K) F& r- ^        .id                = 1,
+ t& [2 ?6 y$ ^2 f+ `        .dev = {2 u( W2 A, b( @4 d" Z
                .platform_data = &da850_evm_tl_leds_pdata,- k3 c( h# N* k0 K1 x* H( k9 e
                .release = led_dev_release,
/ C5 I# h! k7 D& v/ O        }( Y) H& W3 S. A6 ?) l- s. W# W
};+ E) b/ N9 N& h
4 v& @1 B8 H9 g+ d' K
static int __init led_platform_init(void)
! s4 o$ F# a2 O7 ?8 u, p8 z{# P4 V9 h8 ?( F- |+ t  a
        int ret;
5 {* \& L+ a0 _, h1 f0 y#if 05 \" s! \7 ]; u8 E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: w! e/ n' n3 k5 u  a* M( D- X        if (ret)
0 i2 a' {( |6 N) ~! g( G* [1 H$ I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 O+ K! F5 K0 }( T
                                "%d\n", ret);
( |: G! N/ j+ T! A1 b#endif; Z. e; h0 M! N; f& p8 C
        ret = platform_device_register(&da850_evm_tl_leds_device);( h6 R/ r0 \1 k0 e8 c- W4 }
        if (ret)
& w/ o* s8 s! e) u3 E                pr_warning("Could not register som GPIO expander LEDS");
# K8 f, s' k. R% q* P/ }        else
- S  t+ g& v' G' ?3 h                printk(KERN_INFO "LED register sucessful!\n");  h; B( U( h2 k# Z4 t

" F% ~  }" v4 X' E7 n        return ret;: _! s/ |, A! L
}
+ S' U% q0 p3 B* c+ W- c& r  O) i# D! O
static void __exit led_platform_exit(void)
( M8 j! n1 i* V# J: T{# L4 \2 w* P1 t$ }% i9 @, X
        platform_device_unregister(&da850_evm_tl_leds_device);, C( K7 o0 \. c$ }# X% }0 {; O
/ P. }& m. b( D  b3 `1 ?
        printk(KERN_INFO "LED unregister!\n");
" E& k  o' ^1 Z9 a5 z& H  `}
5 }! q+ }8 }4 ~! p+ `1 K( e1 v6 u8 m/ F- B
module_init(led_platform_init);5 R0 y( @% g& ?+ ?
module_exit(led_platform_exit);8 g( W# P) E" k) P3 _- v' Z

7 M. F' g% W4 M% R% YMODULE_DESCRIPTION("Led platform driver");
# |+ ]3 Y6 Z/ |0 m# q, }5 kMODULE_AUTHOR("Tronlong");
( }4 @! L5 b9 f: c' y( lMODULE_LICENSE("GPL");
" z3 Z& x4 ?/ d% k$ w# K+ Z) }+ }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 16:43 , Processed in 0.039244 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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