程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" v3 c' c- P) l- T! b; {
#include <linux/init.h>
2 h8 u3 e' Q8 `" u% G0 q#include <linux/module.h>2 V5 b% m' N: i0 G2 y
#include <linux/kernel.h>  H  T2 [9 `% V
#include <linux/types.h>
& i4 U) J: }: G5 l- g( k9 ^0 }#include <linux/gpio.h>3 T! j7 k7 ]& o* z
#include <linux/leds.h>- _1 v" p3 @, D( B- W3 W3 b0 ~
#include <linux/platform_device.h>
  _, G/ P; z. t  C$ X3 A( I. t; D. g/ `
#include <asm/mach-types.h>% G; C+ f/ ]. X. `0 _+ d  P& c8 x
#include <asm/mach/arch.h>
8 j" Y; V  e9 E2 u' }  l$ v6 s& t#include <mach/da8xx.h>
! u$ p% k6 a/ |6 j9 _6 G6 p0 l: f#include <mach/mux.h>* d2 k( \( F8 X' Y# v# }
% E; M  }$ g" n9 G+ c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ U. c8 R& D' c, ^( o, z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 ?. h7 m4 d. d" h6 A  j! T" c, E: q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% d. a5 [3 e+ @$ w) D- R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 ~4 |) V1 B: _8 ]* W9 I! X1 X  T* x8 L+ r3 c! y6 b& j" w
/* assign the tl som board LED-GPIOs*/
9 ?6 x& n' ]( t* i8 z# q0 wstatic const short da850_evm_tl_user_led_pins[] = {3 O3 ~4 n+ h5 i/ G" c. X2 t2 i4 ?$ I
        /* These pins are definition at <mach/mux.h> file */; L4 Q/ y# ^4 X! {- V8 ^5 ~# n+ x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* n% r. h: w' G# l
        -1) S4 y; y. c% f. G7 P$ r" u
};
1 c$ D2 H, R9 X5 c! Z1 e4 M; J
' t- `! T, m. p2 C8 @/ B" Mstatic struct gpio_led da850_evm_tl_leds[] = {
& K* Y+ e, i7 M4 Z8 S. m( \! M        {: C$ S6 J1 e9 D" J
                .active_low = 0,, ?2 W9 `, [) ^  `6 B
                .gpio = DA850_USER_LED0,
5 l# g3 P3 O9 M1 T; O1 `# _7 ?9 B                .name = "user_led0",) B3 A3 \) Y1 K
                .default_trigger = "default-on",8 N" T& U8 F+ J$ T; R
        },
  @: L; D* N7 x( F        {
0 T; s, z; q0 E1 C! r* }8 Q/ ]1 d+ P                .active_low = 0,. \! P9 I6 G( d+ E9 @
                .gpio = DA850_USER_LED1,
. q( u6 m2 }- A8 I7 b                .name = "user_led1",7 u# T% z( m$ b, }2 ]5 t8 w
                .default_trigger = "default-on",
6 S  l9 X8 g1 S+ O# {3 y. E0 t6 f        },' `7 ~1 X+ W- B7 q4 c5 r0 x
        {
9 v( q9 `, S. @0 d7 K4 L1 q' q9 Q                .active_low = 0,7 ]* Y7 V+ e( F
                .gpio = DA850_USER_LED2,6 H, {8 g+ J) d/ S% d
                .name = "user_led2",
8 a( Z6 E; R/ I: y. j; l& U                .default_trigger = "default-on",: w( T2 G1 M# z; \9 F. I* k+ L
        },: J4 t" C- G; ^! J' H3 j
        {
8 |8 X& B+ m8 C- K$ O5 U: K                .active_low = 0,
) C" K* H0 C& r. e. Z5 f& o3 ~7 e                .gpio = DA850_USER_LED3,9 c9 o; M: ^7 R8 t
                .name = "user_led3",
  `, x0 c8 ~  b                .default_trigger = "default-on",0 D: U8 h2 B# h
        },# a' ?0 _6 w% H7 ~
};
& l/ Q2 ^# K7 i# W  M8 l4 x1 h# `5 c, d5 ^* i" ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 a. k+ D  j6 P: ~
        .leds = da850_evm_tl_leds,+ U. T+ b; T; N* B0 {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 H1 ]6 i% a/ e+ _. n5 \' G
};
2 U$ e8 H& m2 L3 W4 Y+ W# v0 R
6 z  M$ p" ]/ V* S, z2 u# r/ Zstatic void led_dev_release(struct device *dev)
( P1 u& s- h" o$ Z$ o: E' I: m' G{2 _0 |/ v, e* ]: {  w! g
};6 n: T! s/ o2 F9 W6 l% y) ~: V/ D

6 j4 S3 s! B! [/ y( L  V/ Mstatic struct platform_device da850_evm_tl_leds_device = {
$ g$ o/ w3 J7 t7 D' v' k2 Y        .name                = "leds-gpio",
& a! v- f6 c! k7 C( g- }. i        .id                = 1,: N6 ~+ F0 o, M% E
        .dev = {
/ V. |3 F' A1 v) a( P9 u5 }7 O9 D                .platform_data = &da850_evm_tl_leds_pdata,
. i- w! d9 l$ f/ c                .release = led_dev_release,
( I& G7 s0 D* g        }
/ i$ N: P* E3 D! r/ X) m};
; G6 o2 s0 Q# a1 U
2 T7 M& y, P  e! Z: gstatic int __init led_platform_init(void), c% J9 _8 S* Z  f
{  U! F. f! }/ A& K# G( N- N
        int ret;5 g6 K. s1 W) a4 J
#if 05 g3 P4 e! V5 ^) d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# ^  c. F+ F1 z
        if (ret)
2 O7 s8 O2 k* K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 i! ~* f7 _1 y% H6 P                                "%d\n", ret);
5 `$ Z+ n. }: N9 q#endif8 b+ |9 J  j" A- E
        ret = platform_device_register(&da850_evm_tl_leds_device);
" y8 r* w" j7 S* H' @* R- j        if (ret)
9 ?# w  ~: o* N( e/ L                pr_warning("Could not register som GPIO expander LEDS");
+ F$ W4 {5 \) E! I# G4 F        else
2 e) R8 n6 a6 ?, b# b                printk(KERN_INFO "LED register sucessful!\n");
) O% W) U7 @: @9 o" {6 c
, Z7 B& `" y6 j* @  C0 N* o4 f' N        return ret;3 |" _! m2 O3 ?
}4 I! b. C8 P( ], L  Z6 E5 t
: @$ A% ]1 X' x8 [
static void __exit led_platform_exit(void)
$ L: Q4 I5 K  m9 P  `{5 u7 O0 m; q2 Y# B
        platform_device_unregister(&da850_evm_tl_leds_device);
/ w: X6 k6 \: b2 |
0 x2 m0 ~5 }) O) ^* m9 ?        printk(KERN_INFO "LED unregister!\n");, Z8 K# q' Z0 a$ b1 z/ K: {
}6 K3 R8 k5 V. b: o( K2 b* [, G
' m. N2 s% l: H- `: V  C
module_init(led_platform_init);
" T' Y  m  N8 M3 I; A. ~module_exit(led_platform_exit);, b; E& t, ?/ P5 q* W1 O1 H0 W

/ ]$ C& H1 _$ ~3 N! `( P( FMODULE_DESCRIPTION("Led platform driver");
: Q/ x/ @2 R& Z$ K8 q* g. C. W  qMODULE_AUTHOR("Tronlong");! x( W- R# z! X0 @
MODULE_LICENSE("GPL");
* W2 T1 y0 T  [$ t; p3 }2 F- U6 v' C' ~, P. l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 10:42 , Processed in 0.036180 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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