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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- f- z$ H: i2 F# q3 Y4 l9 W" q
#include <linux/init.h>
8 B* Q+ _/ H8 _0 K#include <linux/module.h>
" Q6 E& i2 h3 p8 p; N#include <linux/kernel.h>
& n5 M$ ?  H7 I# s0 V. F) s#include <linux/types.h>, m2 r, S, p' Y! \; n7 X
#include <linux/gpio.h>/ j* @" ]1 M. d* v" F. X  U% z3 u
#include <linux/leds.h>
0 g' k5 N0 h- l+ k0 a& p' o#include <linux/platform_device.h>( _( t! Z8 h9 b! o8 U& W: f' A

- X6 _7 y2 q+ C$ u2 {% `4 z#include <asm/mach-types.h>0 H+ i& }+ u8 d; L
#include <asm/mach/arch.h>
+ [+ B0 {! g8 e* v7 P9 ~1 i- d#include <mach/da8xx.h>
! s% \( I) ]6 T5 M( u#include <mach/mux.h>
& I. J0 }2 ~* U/ `
3 Y$ ]$ C* n8 A# G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 O) {( z( C% y8 }5 e" H  z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ f( Z, |, D/ Z$ l! O0 _; z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 ~7 G0 v2 [: V! V, `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& Z/ i8 k% M+ h
$ P' G. T/ q, ~3 H& x5 Z6 |
/* assign the tl som board LED-GPIOs*// f6 ]7 j8 A/ p3 F
static const short da850_evm_tl_user_led_pins[] = {
! y6 V2 I6 ^$ ~9 B5 \3 M        /* These pins are definition at <mach/mux.h> file */0 l. \/ ]! D, f' V% ?
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 }8 e' L* r3 a
        -1
# D& a1 L1 l  z" f! _1 J};7 U8 Y2 o, u* E6 Z- D! D, b
# Z% `2 @" _  ~
static struct gpio_led da850_evm_tl_leds[] = {, t" X) Z: ~5 g; B0 K: j: C
        {
% D9 }  t- k% k' j                .active_low = 0,9 \" o, @- X6 W$ `
                .gpio = DA850_USER_LED0,/ S% c, X% b# c' d/ D
                .name = "user_led0",
, m! v. g( k, t, e' {& v, P                .default_trigger = "default-on",) ?# a. d% A. _; y7 Z
        },
8 K* B+ [! N% g' u: Y        {0 |6 d& I3 F- V: ]9 T, T  W6 H( K
                .active_low = 0,
( c, S( l* E6 x+ N9 Z6 B+ `9 f                .gpio = DA850_USER_LED1,
* `2 n  }; l+ `& b) v% m2 {                .name = "user_led1",3 ]8 ~9 K2 N' R
                .default_trigger = "default-on",2 ?, M- k1 C6 S0 A
        },
! w2 t$ a' S9 p0 `( u! ~        {
3 F3 m9 e4 L, f9 a9 l4 [                .active_low = 0,
, _* K6 y7 f& X2 v( q! }( ?% c                .gpio = DA850_USER_LED2,8 o+ F) d: g6 F# A
                .name = "user_led2",! [7 {+ Y9 t4 V& N0 @+ z( b( k
                .default_trigger = "default-on",2 U6 M$ @3 ]) b9 Z
        },
1 B/ h8 A: E" b- L; {( n        {
# f! z! Z; c$ L( Z' \  T- \/ W: Y                .active_low = 0,: f" C- a' p( D( Z9 L2 {
                .gpio = DA850_USER_LED3,: x) _' c! E- e; H  i
                .name = "user_led3",
* f/ n/ }. A" {6 m, w                .default_trigger = "default-on",/ Z# y1 ^2 X& z2 A3 K5 a
        },
% K6 r1 d; m9 e5 D; W* I};  }! t; J. l, s2 G

! D: B: i1 L0 j6 R4 |6 xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 U' H( g# N) ]% H9 P0 Q+ u- }0 r
        .leds = da850_evm_tl_leds,
$ {& U' w' i( E. F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% u- k4 @2 F2 h9 K& a
};
/ N- B6 b  @/ y9 o6 P4 c6 D4 C( N0 ^( e. O# b
static void led_dev_release(struct device *dev)3 v, @% j6 V! j* `# k8 `
{
. Q6 x! B7 k4 q};, _; u3 a- B; V$ E( s* z

0 v6 q7 A) V1 H7 A* wstatic struct platform_device da850_evm_tl_leds_device = {
% u0 [# n3 B( ]/ o- q        .name                = "leds-gpio",* ], l  i! |5 d# H* C: V" W8 B5 O. I
        .id                = 1,) V# I8 V' C* v6 e1 `7 P. ]9 E
        .dev = {
, i+ Z/ }: o  S5 I0 A# p. i+ s                .platform_data = &da850_evm_tl_leds_pdata,
6 x1 r4 I+ b) B# H5 m& k6 g9 {                .release = led_dev_release,
8 x8 L; X5 [9 T# |9 I$ J        }
1 B8 ^( v$ r3 Y6 x) [};" e- @$ P5 p6 K) V4 h4 V" }8 ^

1 n: ^% {% {3 P/ Y' O& Y2 o3 `static int __init led_platform_init(void): ~7 g) ?2 f9 E2 Q; i
{* ^- y( G4 u7 x8 i; y! {
        int ret;
9 R4 x, @% F( f; f9 Q  z#if 0
1 `( }7 v9 T0 R. |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% p! l, e. k2 q+ x3 X) w        if (ret)
  t% L( E# V' e/ F7 H3 Y5 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". O1 @/ H% Y3 M3 s# u) E2 Q& F
                                "%d\n", ret);
9 }9 W" a/ J8 Y* }9 N5 l#endif
2 I4 E- {2 [( ^% r' K        ret = platform_device_register(&da850_evm_tl_leds_device);8 {+ O7 E+ u  \7 ]" \5 N( d
        if (ret)( T& a/ W1 I6 N9 Q
                pr_warning("Could not register som GPIO expander LEDS");( x% v9 P. m0 i
        else% Y1 o* e, B8 A' V, K
                printk(KERN_INFO "LED register sucessful!\n");* z$ Q- n' T0 w
9 \. G+ i5 @! Y6 a0 s+ k- k
        return ret;
$ p( j+ r. }: S& {}% |7 C, K, B* P! w* L
5 p) w! Y' B3 E7 l
static void __exit led_platform_exit(void)
/ J$ X6 s& `9 S* X6 z{
* D5 I: Y8 a( \7 |' b        platform_device_unregister(&da850_evm_tl_leds_device);
" \0 ]9 t/ V2 }' H5 t7 N+ A( H( N& c9 O' p* k- g
        printk(KERN_INFO "LED unregister!\n");
* y( O) W! _, V% v}5 k  L% C6 o5 g3 c

6 o7 T2 t# p6 k8 Z1 nmodule_init(led_platform_init);
% g1 p/ g+ O, @+ Z3 r6 Mmodule_exit(led_platform_exit);6 U$ H5 ~9 t7 p: V7 Z! K- k
2 `8 a0 g3 r( W+ p, C
MODULE_DESCRIPTION("Led platform driver");
# G+ A; \% H* H- r8 }MODULE_AUTHOR("Tronlong");
4 }. J! [. o# f9 M" o# gMODULE_LICENSE("GPL");& p. \  K; s2 m( ~
$ h9 i* M" c* V3 ]- [2 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 04:01 , Processed in 0.038960 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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