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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ c; `6 |( r0 ^#include <linux/init.h>+ Q) q! U& g  a% g; f2 i: H. _0 {
#include <linux/module.h>
* B) N4 Q; [7 q% L+ k6 G5 Q# J#include <linux/kernel.h>
" y1 w- K/ Y" Q. S  C. [+ c#include <linux/types.h>' v, n; g; |/ v9 x/ i( L3 D, v
#include <linux/gpio.h>/ d4 n. ]6 j3 u/ i% n4 F- a
#include <linux/leds.h>
1 Q3 r; e- h3 T% o" ~" x& _) b#include <linux/platform_device.h>
# u) J% {( i  m: B! v& O
* j8 e. T: N7 Z& I; v#include <asm/mach-types.h>
" s' r. B  H. E0 z! k: c# K#include <asm/mach/arch.h>
9 S6 H8 u/ Y, G' E" `2 e2 v4 W: A% i#include <mach/da8xx.h>
. j% w6 B' V% u  T( s  ~) _#include <mach/mux.h>2 I* W: y: v0 f" r
/ N6 Z8 U. u! G/ k8 B+ r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- q6 Q/ y9 K7 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  o1 ]; b# m: D3 `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! T# f" p! U, n# [" I6 K9 U  b) W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 F, @) D0 n! F- q& I+ x
5 m; X  g  r; x9 K8 x' g" h/* assign the tl som board LED-GPIOs*/
* O* _0 ]: U+ H+ wstatic const short da850_evm_tl_user_led_pins[] = {
2 g: n( ~1 b( i0 o- @/ I        /* These pins are definition at <mach/mux.h> file */
, Y5 w8 b( T. C' H/ W4 {0 e1 J5 v9 K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 x; r. E; ]3 o$ w; u
        -1) l  G. r2 `& M" ~. H% }
};( M$ j8 ^) l- q6 l2 H! K* u# Q
. T( Z1 h: |/ O% g2 {
static struct gpio_led da850_evm_tl_leds[] = {- s9 `; ]) C0 w& I( t/ T, T
        {
* Y' a( {; w* Y, S7 G                .active_low = 0,% X( c! H& ?- y4 e( {; o
                .gpio = DA850_USER_LED0,& z6 n. T% f+ C2 H/ z2 Y! h  H% o+ N
                .name = "user_led0",7 G6 I( R; C! x/ E. E
                .default_trigger = "default-on",
" l( d4 T' p2 N! ^0 o3 a( c        },% @* |/ K: T7 v- e4 u9 ]: Z
        {, J. f) a# i% O
                .active_low = 0,
6 ]  n$ d/ d" h+ f; J" K2 B                .gpio = DA850_USER_LED1,
2 D1 ^& Z( T6 J' @% y( u$ w                .name = "user_led1",2 a$ x; \% L! O* Y
                .default_trigger = "default-on",$ I7 L8 V' e! r9 s7 R, m
        },7 n8 \) i# d# O1 D
        {3 g1 o7 n3 J2 r
                .active_low = 0,
8 I! }6 ?! ~4 o2 T5 q                .gpio = DA850_USER_LED2,
9 E) q0 w, a4 f( I+ t                .name = "user_led2",9 O* A- G) H4 T4 J% @( a
                .default_trigger = "default-on",# \- I! n( [+ C5 _. s! ^
        },  y! _; ~7 M+ q, t
        {6 D- I, L* G5 A% [
                .active_low = 0,
* ~$ Q3 g6 D" f5 T& M5 j                .gpio = DA850_USER_LED3,- k; E/ I  C& O% G
                .name = "user_led3",0 U. G8 A& D- T) z
                .default_trigger = "default-on",( E% p( s" R6 h; f# {$ d7 w
        },
4 h9 r  f" w; R};
* y5 f' R- y- d$ m. ]
6 b6 y3 G' H5 y. v5 _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ \" p/ x# E2 M$ r
        .leds = da850_evm_tl_leds,
/ ]* S" q" e9 p5 f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 O- r4 ~' o) ]8 P. R! k
};0 @1 e& i; k* |) n5 r* l
# b9 Z) v: U. i. p
static void led_dev_release(struct device *dev)& M5 X! r( A( x- u! {! y* i5 N" D) s0 y! j" R
{7 c1 S" W$ N. x6 X
};
  f& S; A4 k* w+ o4 d9 X  [' |* J* C- H
static struct platform_device da850_evm_tl_leds_device = {" `3 U* D9 @6 Z0 p9 D  @
        .name                = "leds-gpio",
+ U4 w- P/ i0 o0 G0 `' e7 a        .id                = 1,* p, V/ e1 |' M$ N
        .dev = {
) S$ S2 q5 Z% B3 `" i6 a                .platform_data = &da850_evm_tl_leds_pdata,, l8 p* |7 Z) a% |6 S" u9 [
                .release = led_dev_release,
; z. R0 ]+ H9 k' x) I& N        }( N; W) K& m7 ?& [! }1 m
};
4 v1 |5 N& P* c( E" R! K; G/ |4 u8 }, }! t6 |  h5 [
static int __init led_platform_init(void)
+ p8 p* o, D: |3 o  z+ T{! A9 [' T+ \2 R% o4 ^+ y) u
        int ret;
* C) n0 x" }; K#if 0% [3 t9 e# c: S. Z0 V* R: a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 F# c+ E& v% x( S, o6 W        if (ret)  T! W# @% o6 m# x1 \/ X; t7 O5 I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ @; q( z1 B+ m5 k7 S! q- o+ I* W                                "%d\n", ret);
. }- J: _0 b4 I# w#endif" ^+ b2 p& O: m
        ret = platform_device_register(&da850_evm_tl_leds_device);" g- q* Q+ S* M! l, ^. \
        if (ret)
6 a; n- h7 q0 r! z9 f) l                pr_warning("Could not register som GPIO expander LEDS");
3 A! @5 D1 o/ x) D        else/ E  [2 Q4 m2 V6 r  O! |" f+ P
                printk(KERN_INFO "LED register sucessful!\n");
6 ?/ U3 j& J2 n5 [; |4 }5 K0 s# l7 F
        return ret;
- w0 {& ^" y7 @, _" h& [/ E( `# J, S' u}9 _+ ~( B8 N3 z/ S

0 H# Q# ~# @" Z+ h, cstatic void __exit led_platform_exit(void)' ~* u% f- m0 t4 X8 s( S6 t# J4 A
{5 K7 Q6 |$ \8 o' k6 t
        platform_device_unregister(&da850_evm_tl_leds_device);
  T+ ~. c( H+ L. E! s% R! j& E$ O0 B
        printk(KERN_INFO "LED unregister!\n");
$ z. ^: a! V" K. ?) B  \}
* p- p, z' ?$ Y8 d- s# A+ H+ F& h& m+ _; `
module_init(led_platform_init);; r* t" i- a8 m$ v7 ~
module_exit(led_platform_exit);
* }8 O( P8 Q# }7 ]0 H3 k, P5 n
8 M& n/ H. L! z; ?' I( O8 MMODULE_DESCRIPTION("Led platform driver");
% @4 s4 _2 y4 r! ?MODULE_AUTHOR("Tronlong");
0 H# [* |# F& y% ?MODULE_LICENSE("GPL");
1 X$ [& x- @! c, |' [" n( b  n& a; l+ t4 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 07:02 , Processed in 0.037300 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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