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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# Y! u0 A- o7 I6 L#include <linux/init.h>  k4 m7 b! V" S/ F) r
#include <linux/module.h>% O) q1 ?  ~* C* k
#include <linux/kernel.h>; y/ ]* J# I8 A
#include <linux/types.h>% y9 K# I! |: Q! E( ~
#include <linux/gpio.h>
- H& P6 k* J1 }1 m) e#include <linux/leds.h>8 w& v3 S/ U: k1 C& \
#include <linux/platform_device.h>$ w+ p8 H7 w5 u" v- w8 D. v* Y

- c) r- p- f7 J) g- X#include <asm/mach-types.h>
8 W$ U9 f1 _% I% A! [#include <asm/mach/arch.h>
$ N" ]& s, P5 ^- y#include <mach/da8xx.h>
0 T0 z. B" G2 Q8 \#include <mach/mux.h>
( X* C. y2 ], X2 B* j
) q3 {7 r( @) T5 n! O! l#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" M2 l& s7 ^) H* {  {5 ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" p  r, A( {, `! x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ I4 u" j/ H  G8 u1 c# G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 G  ^" P: m7 I8 F# q# t. w% {$ R& R" t, q# W4 f% ?+ p
/* assign the tl som board LED-GPIOs*/
: o$ [& S$ B  g; lstatic const short da850_evm_tl_user_led_pins[] = {
6 t& g& n2 q2 U8 ]9 F  \        /* These pins are definition at <mach/mux.h> file */
6 P1 a- f+ J; `( t' R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 ]8 W6 n" H0 b: J
        -16 m: h9 G3 }$ m- v, t! A0 l
};
  w7 z7 [, G3 [5 l; N; v
0 E* I# W+ G) q5 d5 e+ istatic struct gpio_led da850_evm_tl_leds[] = {
" A6 |8 l2 ?" T; a% W        {
5 o) X3 X( o! z! c" x                .active_low = 0,
. W, j) z6 W  }; @                .gpio = DA850_USER_LED0,; S$ f4 O; }) x
                .name = "user_led0",+ M( W% X$ v, f
                .default_trigger = "default-on",
+ q& t- S' \$ h) t' Q6 U        },5 d: l; C: G! k- u
        {* V" u; }  X/ Z+ v
                .active_low = 0,
6 o7 O! f( Y$ ?/ m; n5 J                .gpio = DA850_USER_LED1,: x; n: n$ L8 J1 \5 ?
                .name = "user_led1",
6 B4 x& @7 X) _4 W( j                .default_trigger = "default-on",8 v) k7 u) n3 d# ]; ~0 e
        },
, i: N" _* b' E3 i7 ~        {7 B+ ?7 L' H! A: [
                .active_low = 0,
: @9 g8 d2 b5 @4 }6 L* s; e) a  X6 P                .gpio = DA850_USER_LED2,. t6 ?5 ?9 @% w: @3 S+ ^
                .name = "user_led2",. E: T. [0 n9 ]! i9 {9 W. s& s5 n
                .default_trigger = "default-on",
* H' @. j! \. y7 I; A) }; A; p        },
2 [9 l; ^& c9 Z7 k+ G  K        {) x+ I. b; o0 l) i/ |7 F
                .active_low = 0,& f, P& k2 W# R7 v( ^6 x! _/ C
                .gpio = DA850_USER_LED3,7 S7 b" l) Q1 B* d+ {
                .name = "user_led3",
, h! p$ S& U7 c5 x. _                .default_trigger = "default-on",
1 l! \& [) t4 q9 I* l2 L        },
% J9 k, s; S/ S! v! i};
( q$ x  F# ^% y! f' S, x/ G( W6 ]
. P! b1 Z1 Y( b. O# vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 E5 m9 u) G/ |/ c1 z$ y* L0 o/ T5 ~3 ]
        .leds = da850_evm_tl_leds,7 y3 D! ^" r; D8 z  ]$ V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 S- D/ ]6 G# w8 f2 B7 i};
3 W7 G" }; w5 v
) c# l: R% V9 r4 ~" Cstatic void led_dev_release(struct device *dev)
5 g, D- j: c& I+ r! B9 H& _6 p{# @( Q3 `1 X' s; U
};
2 i9 P# F& l/ U& C/ D5 w; n
# K; Q9 I: @  t8 mstatic struct platform_device da850_evm_tl_leds_device = {3 Y* D+ z; U& Y$ v! ]
        .name                = "leds-gpio",
! ~( c. T+ A$ b        .id                = 1,4 F$ X$ O) i! F( ~! P% @/ z
        .dev = {  J2 o  @" k0 _  t; p( h
                .platform_data = &da850_evm_tl_leds_pdata,0 B: w0 S, B( |8 Y7 G+ a3 W
                .release = led_dev_release,* J' F  Y5 {6 p
        }- \: R( Z4 t9 X$ K* O3 X1 J$ B) i. C
};
' U& k- L  e, @  I; b/ D; l% V+ ^/ R
static int __init led_platform_init(void). j; s4 `# a' J, }- l
{
3 L0 N" y7 X# P2 [+ ~" z        int ret;" s2 X& t+ Q* _+ |0 ~4 H: e
#if 0
8 X' R) A. g1 l4 H% o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. B& N, S& ]! j: U        if (ret), P7 Z4 k0 y# P2 b! A/ D8 S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 j4 A7 j7 Q. C' T+ p
                                "%d\n", ret);
) Q* i4 P: c( ]% a#endif: o0 M$ a" I% w* n( x& B! r* k
        ret = platform_device_register(&da850_evm_tl_leds_device);; {$ j9 U  d5 c
        if (ret)
5 r8 f( n/ D+ Z                pr_warning("Could not register som GPIO expander LEDS");
( k. c% c- `& ?9 [1 |* ~        else, f/ q9 j% c. Y' l2 @
                printk(KERN_INFO "LED register sucessful!\n");! R' F5 r( {0 l5 z
) m+ w7 D* v4 M- T* v3 \
        return ret;6 I+ @) S& ?& M0 Z3 m& W# t
}6 V& R6 [/ z6 s4 X. A  n' o& i
7 [: q* A; f2 ?
static void __exit led_platform_exit(void). t6 d( H& S; [+ ?% t) z2 c# o( v  F
{
- f: G1 e" P0 Y/ E& ^4 P# z$ m        platform_device_unregister(&da850_evm_tl_leds_device);
2 ~8 v5 X; O1 p# e# L* H  g
: x+ G1 q3 V  `* r; r, x        printk(KERN_INFO "LED unregister!\n");
  P. Q( B! O. {# T2 V: w}+ J; `5 W7 S% J3 d" [, m& U2 t
9 |) G- n$ \. W/ C- @* Z' A" z, ]9 {
module_init(led_platform_init);
$ v4 ]2 l- P. T1 {0 Q7 D3 f; fmodule_exit(led_platform_exit);
# T9 s; H& m& D$ u+ m! o' {6 k+ T7 I6 j3 U0 _' t
MODULE_DESCRIPTION("Led platform driver");! T0 u% G; m- L, r$ D& p  q5 U
MODULE_AUTHOR("Tronlong");: }  r; S0 {, @7 D3 w8 x
MODULE_LICENSE("GPL");
3 W. w9 n1 f" ^# W7 R
, H. W5 J3 S* s$ ^. A6 c' G* ^/ L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 19:05 , Processed in 0.040948 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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