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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 c" ~6 p: P: |2 h
#include <linux/init.h>
* U: [+ T' U+ c#include <linux/module.h>2 x! ^: O' W. m4 G
#include <linux/kernel.h>' u- ~0 y/ ?- z4 }1 e; i0 v+ D$ C
#include <linux/types.h>7 V1 D8 f! r1 Y1 \3 V
#include <linux/gpio.h># R2 z8 W" N, H* b, U4 N( q
#include <linux/leds.h>
3 U2 F; L9 g! z6 k#include <linux/platform_device.h>
, r/ [% l, M; W
, c. y, E' l5 I- Q. C" ~, n8 v: k0 [#include <asm/mach-types.h>0 g0 q4 p' ~+ t. s
#include <asm/mach/arch.h>
# T, H6 ?7 h8 y$ ~#include <mach/da8xx.h>
. S. z) @2 Q1 k6 {$ g8 ]7 }+ P- R#include <mach/mux.h>: i1 l7 A. F8 v! V+ E2 E

- R8 L  R" T! X: l" v( w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" H8 @7 j6 E* u/ x) M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 o  [. ]% _4 C' r/ G( \7 p5 @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ K% O& |4 m; I4 M, v3 t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% {. o0 m, [) r9 D

. p1 S, v7 ?8 ~  o- p3 Z1 W/* assign the tl som board LED-GPIOs*/
+ @) ~0 B( f" Z6 s# x8 p& r1 k$ g# \static const short da850_evm_tl_user_led_pins[] = {# j& j9 i/ g) Q/ D& a( G
        /* These pins are definition at <mach/mux.h> file */. f, e' M7 d0 O# g* y( x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ c0 e9 u+ ~# q2 Y" b& J, p
        -1
" u; @. R1 N7 m; V" ~( T};
) u5 d; _8 u4 S  ?* E1 ?; v  ^" m" O; @; T
static struct gpio_led da850_evm_tl_leds[] = {
( `2 l5 i1 H6 h# m$ h        {
) W+ T( _6 Q5 f  `9 _  l5 x                .active_low = 0,
9 [" ]7 ~3 X3 u% i2 w                .gpio = DA850_USER_LED0,' b# b& A) g$ N* B* K1 A3 _
                .name = "user_led0",+ N  u: i# P* K& Q+ }
                .default_trigger = "default-on",% E7 o6 B, Z% F2 L
        },( ^, D& C1 }$ ^
        {
5 X: N' b# b, J( ?7 Y                .active_low = 0,
3 g+ I) D0 W: ~+ p5 _% m2 R                .gpio = DA850_USER_LED1,, G. \7 M3 |: _5 t' }  {
                .name = "user_led1",
* x% _. N; R! N% H& ?( w( P: s                .default_trigger = "default-on",
1 S2 X$ J# R) n8 ^: K* ]- a; H        },& P1 m$ f2 K7 S" |
        {1 [* |. p7 G9 s7 w) U
                .active_low = 0,
* i. f4 h! U) ?% W0 Z) w6 b7 p, M) v" M                .gpio = DA850_USER_LED2,
2 m1 ^$ ~% f9 X7 S5 S# Q/ |                .name = "user_led2",
: b, j! k6 [! V3 M                .default_trigger = "default-on",+ N2 K% s, |9 S; T  Y+ @) y" F
        },
( Q/ }+ M# S+ h/ j: c        {* W8 a# Z( Q4 G
                .active_low = 0,) j9 k. k( {% _! u& e/ G& C2 c0 Y
                .gpio = DA850_USER_LED3," z$ p+ t& ^/ t5 p; {! o7 J
                .name = "user_led3",# m! c) V  K/ s+ P' z, U" S! f
                .default_trigger = "default-on",
; ]1 |* C+ U/ D% y        },
0 ]( _! n4 @! H- z};: k- J! o" J& ?8 P% S9 N0 p9 D

& |& f) n  b0 X. Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ }) P2 S, Z9 D1 z% {  Y        .leds = da850_evm_tl_leds,% h  B$ K( y, U& Z4 h. [3 H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- ?( S6 ?: N5 u8 Y- P};
4 |7 @) J  }' F: D( p( X. ]3 _6 q: ^
static void led_dev_release(struct device *dev)
$ G) m. k: K1 z{
. P# }: Z. u' {};
* C% }% ~  ^' m5 }% [
. X' H- h3 x% H% Ustatic struct platform_device da850_evm_tl_leds_device = {
' R! L3 J# C3 F4 S( U0 P) ]( Z/ h        .name                = "leds-gpio",
" ^1 e) V' C1 \' F, ?/ N        .id                = 1,
& d9 L( S# L& c$ c6 ]4 ~        .dev = {
2 H8 R( G9 r7 j0 Q0 N                .platform_data = &da850_evm_tl_leds_pdata,
# U: x  [5 J# h( }. k  S1 v                .release = led_dev_release,
; P* L) t* X5 c6 [        }$ O' Y5 C  D& r: d
};
: a! k+ e  _$ b/ l/ Z$ m5 F4 e
& x& ^+ T% K  v+ r, [  _- [) Z0 ~static int __init led_platform_init(void); e( V2 V: q/ a) l% s/ d- c
{
2 F: {0 l+ Y6 P( r( R+ l  h7 C9 f6 M        int ret;
$ d( e) x  H0 a0 ]3 \. x" H. ]#if 0& B% m, s: z) ?4 x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& @& l$ ?, ~$ E$ Y+ w% y        if (ret)7 E  n& t- O: S( F9 ^2 j( z& f6 A7 m# C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 @& s( w& Z8 S5 D1 l$ h0 k4 d                                "%d\n", ret);3 K* S8 `/ A- {. T9 p6 _7 n6 f
#endif+ b0 ^8 [9 z# B* A9 g
        ret = platform_device_register(&da850_evm_tl_leds_device);4 \! _8 N# q5 a4 E1 K0 ^0 `
        if (ret)( ]& v# A1 ?5 D, c# _4 \. `
                pr_warning("Could not register som GPIO expander LEDS");5 P# n% M+ J* \) F! v0 m
        else
7 ~4 I8 v2 A1 T! m) T$ w                printk(KERN_INFO "LED register sucessful!\n");0 F( f0 ^* U: n% }4 m% B
7 S6 S. G- v  r8 @- K, N
        return ret;& x  `7 T1 q# X6 _/ d2 Z0 f! O
}* ~. f  s' ?! f9 c$ U: p& w

- e$ g9 p) \3 S1 L7 A) O1 W- j/ Wstatic void __exit led_platform_exit(void)
; F0 F: _- H1 B{/ P8 L! V; v5 ?8 N
        platform_device_unregister(&da850_evm_tl_leds_device);; T& `1 D- G/ y/ a9 S
5 ^* s( b9 ]2 Z/ H/ r( T
        printk(KERN_INFO "LED unregister!\n");: k) Z1 ]/ b% A5 ~4 T
}
3 c5 r5 p6 R( @3 V- @
0 G& {% q& O3 K/ X7 \3 t" Y( jmodule_init(led_platform_init);
2 g  r/ \: ?4 U; imodule_exit(led_platform_exit);% J3 @% Y$ v" X4 _  c/ w
* `+ k, m8 r9 `; {
MODULE_DESCRIPTION("Led platform driver");# ^, f/ D- G- ?
MODULE_AUTHOR("Tronlong");
" L9 H! b* j. l0 @MODULE_LICENSE("GPL");2 F# O; x. a0 i+ m, }
  C! A( a: g: m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-23 23:03 , Processed in 0.038648 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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