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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 @- T' h5 _- |4 }. ~9 n5 Q. ]$ X#include <linux/init.h>
2 Q" B% l, _) Y0 W/ O6 P0 k: V  g#include <linux/module.h>
* @/ D8 E) b: V9 H/ T& m#include <linux/kernel.h>
! Z- K& `( G/ I) `+ L#include <linux/types.h>0 g8 Z5 D) G: o% D% ~
#include <linux/gpio.h>
% P2 z( Q; e5 U7 W#include <linux/leds.h>
: e6 a2 D' ?1 I' U. w3 B9 a9 Z#include <linux/platform_device.h>5 C! ]& Q- n3 K3 k

$ T  ^' G, r$ _/ s$ M2 W3 Z#include <asm/mach-types.h>
- s+ ?; @2 s: Y- ]1 O#include <asm/mach/arch.h>, f6 T+ |* S+ b( a* E) z
#include <mach/da8xx.h>( L8 n/ j  q( H
#include <mach/mux.h>
) u( r: w' S$ Y9 I+ D& z3 }0 v+ Y  \8 o$ H# q* `" g+ R, X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& u$ ~9 g7 p* ]) A* ^' E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, h( P* F. e  j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ G: |7 c* |/ A% G5 T: T3 x+ x* H4 H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 J4 r$ {" G0 e0 h4 s' S( R6 @9 V, C0 k9 _% l
/* assign the tl som board LED-GPIOs*/, ?5 Y8 N* H$ _/ P6 Q6 M! V, f
static const short da850_evm_tl_user_led_pins[] = {
7 k+ ]; F/ ^% A' n( ]/ f  P( @& N        /* These pins are definition at <mach/mux.h> file */8 |# _7 \* j/ _# k5 K: x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! e1 r. [" f9 U# {/ i4 ?& B. T7 R" @$ J        -1
6 x+ C( s. _* L" [};$ Z* Y, G$ Q- j$ k/ ]5 Q: n

3 z& c; S3 l2 _3 L3 ~# R$ x. pstatic struct gpio_led da850_evm_tl_leds[] = {: W3 L5 r3 ^; P4 L( U
        {
/ P' N4 k3 d5 U                .active_low = 0,
  ^( o7 E, e/ t, F9 ]0 e. R                .gpio = DA850_USER_LED0,3 e; {" y1 j9 t/ c4 F
                .name = "user_led0",
. f( @8 r4 L6 z* ]                .default_trigger = "default-on",
! k  `) z" S6 j' n        },
! _6 K1 v2 r$ C$ c& g        {* q: ^6 C1 |( j; X! ^: o+ z" ?
                .active_low = 0,  J4 S6 e; \2 b: _( b
                .gpio = DA850_USER_LED1,& c* H( Q4 {1 s3 U+ ]
                .name = "user_led1",/ I- @, }1 u% [) r
                .default_trigger = "default-on",
- e: J2 i' @9 ~/ S0 i. P        },1 c! M2 P/ d/ u$ |6 T6 w# e
        {; d9 E( y$ ~! p% F4 j
                .active_low = 0,5 A% l0 z$ @' V3 H7 @+ J' [
                .gpio = DA850_USER_LED2,+ Y/ F. o5 P, t& M* n2 y* I+ I: Y
                .name = "user_led2",
6 D3 n7 c2 d, H% s                .default_trigger = "default-on",
! Z8 M$ g$ m2 l) K! ]* j, p        },
6 M- n  [: k! |1 y2 y" e2 g        {
& z1 Z9 e- p  ^+ C6 l) ^# O                .active_low = 0,
- g! w/ s+ s8 R7 R1 y; Z  _% |7 W" k8 ^                .gpio = DA850_USER_LED3,
: ?; c7 m6 X0 a3 G! H$ g* Y2 {                .name = "user_led3",
( n6 ~' @7 e" g7 v1 d8 j8 l                .default_trigger = "default-on",6 b5 Z! V; k1 q; t3 K
        },
* K/ h& Q' P* T& c};2 I1 \" v( @  r% V( b. h

  e: Q/ Q$ l* ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 K( H( L3 H- t: p+ a
        .leds = da850_evm_tl_leds,7 n9 s* s) s4 `4 E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 D+ Y& r, D1 G+ x};
" G0 F; P; E' b" L' L
$ c* ^/ E& F) M$ g1 ?- c/ k9 t' t3 Dstatic void led_dev_release(struct device *dev)
7 n4 m8 P, G7 f9 N9 ~9 w4 q{
$ S- ~+ o3 L6 H% y1 S6 o};
7 c2 a8 J8 d  A% c* P
5 A. \. C" R7 g% Wstatic struct platform_device da850_evm_tl_leds_device = {
" r* \6 A2 J* K+ r5 X        .name                = "leds-gpio",
2 p) @1 o0 ~+ v8 U( S        .id                = 1,2 k- }  k" S) F) z& L' }' @  U; q
        .dev = {6 @/ E  u! e  G  k8 Y& D) ]! e
                .platform_data = &da850_evm_tl_leds_pdata,
: m. y4 s6 T# Q                .release = led_dev_release,6 t. {, _: W3 k
        }
9 D) h: ~3 E  q) t};: Z* S( D$ ?# I- j/ v) @

/ A% O, }& B0 gstatic int __init led_platform_init(void)) P; C  x& E3 U& {/ U  b  f& {  j
{" u* i7 m5 R9 c; K* v$ f* R# B
        int ret;" y2 \+ _" v3 V+ i) m# V6 B" U& L3 s
#if 0
# M; t/ u/ Z, a$ V* I. X' J+ H$ [2 M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: X% O; B7 d& \/ N. c5 a! I        if (ret)9 F  r: y* _+ h/ @# R. \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 e  u* @" z" Q8 }, L- v7 `* B5 ]( _                                "%d\n", ret);
6 L- k  U* d1 A& T#endif, X7 H! f5 F5 u3 U8 ^+ c+ Q
        ret = platform_device_register(&da850_evm_tl_leds_device);; w. i1 C! l1 {, O
        if (ret)
4 p; R& ?1 ]1 V; {* x                pr_warning("Could not register som GPIO expander LEDS");
* I& V" ^# ^6 ^4 T        else
% k$ z7 k0 K4 ]! }' s' v                printk(KERN_INFO "LED register sucessful!\n");; \- p9 P; ~( l4 ~$ B, ^
" ?' p3 N" U7 S/ ^+ s1 K- G' C+ P
        return ret;
  {* Q1 l+ a5 Y/ j  S  W" p}; ~, p* _6 E  i9 a0 J" _6 F# Y
3 [( L+ n) J$ v: N( S
static void __exit led_platform_exit(void)) q- X( u; w; ?
{6 j; R; d5 ^/ I' i& ^
        platform_device_unregister(&da850_evm_tl_leds_device);
) `' V) P- Y5 @6 I/ T! u8 `5 f3 p& z! s" ^
        printk(KERN_INFO "LED unregister!\n");
3 j* x2 T. \6 k2 t2 |}
9 z  h! }. r9 y( H. J5 [* K0 t0 p; _% t& _; j* w5 r
module_init(led_platform_init);
3 q2 b/ F, @( h" |: umodule_exit(led_platform_exit);
) J- J. l2 c$ K
1 H; n& P% q9 F; {( B! ^MODULE_DESCRIPTION("Led platform driver");
- O9 X3 `5 V& s! K: ^5 C5 p8 r* qMODULE_AUTHOR("Tronlong");
: ?; q; m: ]# g7 M7 D7 t, HMODULE_LICENSE("GPL");, g& ?0 |$ `: f
1 j$ o3 ]& Q& r7 Y, Y5 {( T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 16:52 , Processed in 0.040957 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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