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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  \( ^4 ?' c# r#include <linux/init.h>, r) F3 e. v& @7 \2 o
#include <linux/module.h>) B, e3 f% w' m- S& |$ P
#include <linux/kernel.h>
2 I8 z# J* s  s1 ^* W#include <linux/types.h>7 o; a& b* s5 s5 R7 W9 {0 A. j
#include <linux/gpio.h>
) D+ E/ }; @: N1 |% s; c#include <linux/leds.h>  W( a5 f0 }# E+ E5 ^
#include <linux/platform_device.h>
7 D3 _& ?4 P# @3 K! X$ h$ {# A
- r! |, S- O, M- w/ [4 z& V7 J% }$ Z#include <asm/mach-types.h>
0 w; U, y) g9 l4 |3 [#include <asm/mach/arch.h>7 P( z0 q( d9 H) a% ^8 m, T
#include <mach/da8xx.h>( ^) x& ?& r  l
#include <mach/mux.h>
* r; S* X1 v7 x) f4 Z5 }0 {; e
$ R; V5 d  _+ \  n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  o$ I8 l) w& q# f2 k0 I0 G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ W2 m" W) I7 @# ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); t8 x- f* l7 x; p5 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 d: o! T6 q; z: v$ o) t: J6 w. W; B# L2 Q; K5 U! [1 A5 v5 |
/* assign the tl som board LED-GPIOs*/
$ r+ E, f# a# K9 Q" |5 S5 Bstatic const short da850_evm_tl_user_led_pins[] = {' N# a, ^( E! X+ i8 w8 p& v
        /* These pins are definition at <mach/mux.h> file */" T- \7 F. h; r- g& q) \, ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! P* ~! @2 W) L% C+ @0 h! P/ `' u        -10 A5 c! i6 b2 c' I% L
};
! A) }9 s$ A/ |& T
+ n- k" _' o( ~& A4 |7 }static struct gpio_led da850_evm_tl_leds[] = {# L) A  B2 e  f1 t2 J5 R3 C
        {
7 h$ w& g, R1 Z: ~, F8 A* |  x                .active_low = 0,3 U* [2 q/ ]! H8 i" ]9 x
                .gpio = DA850_USER_LED0,
0 f, G/ I! e6 A2 V& ^                .name = "user_led0",' x; Y8 v, p1 w9 e; ?$ P
                .default_trigger = "default-on",( a6 p4 p( z8 f3 r; J/ `% L: Q
        },% _- m' j: b2 W9 E: K: }
        {* R0 ^( ^/ X3 m% C; s5 m, E! I, u' U
                .active_low = 0,# g" F% @0 F+ [4 a+ ?
                .gpio = DA850_USER_LED1,- E, K/ e; m9 e3 \
                .name = "user_led1",
6 _- a0 E7 X- _/ L: b, E  `3 I                .default_trigger = "default-on",
6 Y, i6 s; p' A/ j        },- f3 L( S9 s! J6 L2 r7 y
        {
  M) `. G1 B& R) }* W% Y0 R; @) s                .active_low = 0,
' q8 S1 D8 b; l                .gpio = DA850_USER_LED2,9 |. [/ f( m# a# j6 A( i
                .name = "user_led2",) r) Q# M' N' }2 U9 y! i( b
                .default_trigger = "default-on",
4 Z7 O* l1 I5 a2 m$ h5 o! b        },! ]: @. T/ [( x1 A1 t8 R) l0 x
        {, v  C/ m3 ]0 j$ s
                .active_low = 0,' K2 t1 z9 C' A& e* C/ Z
                .gpio = DA850_USER_LED3,' a- N' _" P0 p. H9 O1 P; [5 h9 i
                .name = "user_led3",3 y. c# I( r- i$ M4 X8 j0 d3 K* ^
                .default_trigger = "default-on",
1 I1 S0 d8 K; Q        },
; _! m9 O; U# L4 ~8 D};6 r6 C0 D# n) |2 S
  V0 U, H/ v( e& ?* N/ k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 N$ u2 e& q7 f" x& w        .leds = da850_evm_tl_leds,
; I6 R+ V) q4 H$ P2 M! H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 {- D$ B6 ^9 ?7 S$ o  O7 `
};( I: I' u; E# N% [6 h& F
) S* Z3 d3 L. k5 ~$ s7 ^
static void led_dev_release(struct device *dev)
4 D2 o# O  |, I{
3 r# v2 o7 G' |+ p};
! ?2 d7 _! s$ S8 Y6 Z8 i9 L
4 m2 N2 Q9 v4 c  F* R  l; Q- }static struct platform_device da850_evm_tl_leds_device = {# i! [$ ]2 u# j- z$ h) W
        .name                = "leds-gpio",
7 S7 W% c6 A7 O3 Y$ K- G* ^& Y0 c        .id                = 1,1 A: ]  v8 ~$ v( t- s+ X- t
        .dev = {& n2 P) f/ q+ ?! }! d( ]. g' v
                .platform_data = &da850_evm_tl_leds_pdata,
  w; o1 g" p  g4 Z* z3 Q                .release = led_dev_release,2 s* M3 N9 S5 l1 h
        }
! B" T0 N6 {( e* O% K% A% q/ `};, _$ ]! S9 e+ f$ N  e

. C$ l3 U! k- C6 I, O2 o) rstatic int __init led_platform_init(void)1 W6 \9 u: @3 W9 g& |' q' s
{
6 t: Y3 t' i+ L; `) L4 d) n        int ret;# H- U! }* K% y' E$ g7 q1 j7 o% Z
#if 0
. z) }( B- v6 @$ p; y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 t! k/ }: s$ ^& r  ]        if (ret)+ C* y& }/ w7 A; L9 f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") F; \3 L" o9 F5 k) M( A' E' X
                                "%d\n", ret);3 V$ W  {4 K7 r9 v/ ]3 f# J
#endif
& }% a) w9 i( `3 X4 x1 z        ret = platform_device_register(&da850_evm_tl_leds_device);
3 k7 I5 u9 N' _6 C        if (ret)
  J' U+ q! I! P/ R                pr_warning("Could not register som GPIO expander LEDS");" F# V  _4 t2 \# S
        else
& H1 g4 l% A4 `% @/ u! o4 w2 {* @) G                printk(KERN_INFO "LED register sucessful!\n");# e) b  P. z) q" j! {: t4 @
( o3 E4 F$ V9 h7 N
        return ret;
% s: x0 S/ w3 M3 p5 F7 ?}3 k: k9 N5 o# C% v) k8 o
$ j2 |" i+ [& e, X2 ]; y# C3 j1 l
static void __exit led_platform_exit(void)( I7 b! m1 W0 L  n
{. H0 o/ k; P9 W( {6 @* K9 Z, W& y
        platform_device_unregister(&da850_evm_tl_leds_device);
) a9 A) Z; s* N
1 M% \# K$ j9 e1 j0 R$ m0 y0 s        printk(KERN_INFO "LED unregister!\n");  k1 `& ^# L. u1 P: x5 M
}
& ?% z( y* t7 J+ `3 _6 k# n# z5 C# `* c
module_init(led_platform_init);% m: R) o! a! h* c+ w
module_exit(led_platform_exit);
8 e, @$ E- p, A7 A0 F4 h) H: B* u& L1 i! k) C3 k
MODULE_DESCRIPTION("Led platform driver");
7 ?% R5 G& O! {" o. }MODULE_AUTHOR("Tronlong");: d1 u& c2 ~. V$ p' x4 [! @
MODULE_LICENSE("GPL");
' P0 |% i! r' C( I# n0 o% v( V* B. u5 n' K( Q7 K, |# C7 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 13:10 , Processed in 0.044338 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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