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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. U% P; X2 a& W2 d8 Z7 I, U  V
#include <linux/init.h>
0 y( e0 Y3 ]4 {* M  \3 j9 [5 E. P2 W#include <linux/module.h>
: x8 [8 C6 c- o4 s#include <linux/kernel.h>
5 @6 v& s* L& [$ u& j% H! ?9 `, M- y#include <linux/types.h># O! K9 K7 {8 ]7 n' P
#include <linux/gpio.h>
! _8 k/ p3 S( D4 i6 f% N#include <linux/leds.h>$ e. J) k- s. ^- O1 ?
#include <linux/platform_device.h>  [: g8 O* {/ O7 ~, I$ }" p* V

# O  F" |" E: l5 p1 x- l#include <asm/mach-types.h>
9 a$ ~: D* O3 f; }; F2 G#include <asm/mach/arch.h>
6 U2 h3 V& T( u6 q#include <mach/da8xx.h>
* `' |; F$ M$ S#include <mach/mux.h>
# W* n( u$ f$ h
8 u, o2 w- W4 A( o' s. N! A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 H$ Z% b9 L6 W4 s% h. U) B) e% ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 j! h4 O# Z, i, {# H2 j9 E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( A  J0 T6 N. l' [1 j8 R1 A6 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 C9 R. M( j7 l- r( o. A

6 M- l0 {" H) |/ b4 b; _8 R/* assign the tl som board LED-GPIOs*/$ p$ e8 O( }% t) p( J# N# p* C7 i- U
static const short da850_evm_tl_user_led_pins[] = {
  g+ `  Y( y' ^# H        /* These pins are definition at <mach/mux.h> file */
% m7 R6 m( u0 t8 n* `9 Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 ^' ~1 r, b  X2 [! s" Y8 A  G        -1
, l, ?6 W2 Y9 f2 k5 m};
- I2 S. n' t! I7 V% }" t2 O
" [  i: U& l: }1 ^  _static struct gpio_led da850_evm_tl_leds[] = {0 s5 _0 k3 o) X0 }* W) p
        {! h& C- H  M- Z7 C1 r
                .active_low = 0,3 ?" s* m. Q+ M( o3 m  [
                .gpio = DA850_USER_LED0,% v3 O  n2 E+ Y7 s- U
                .name = "user_led0",$ ~0 f9 I# l+ ?1 M
                .default_trigger = "default-on",- G/ h; e8 q) n% b
        },% d" e7 U2 v1 q$ q% Y$ x
        {
1 Z0 n! V% Q! P. N) O8 S                .active_low = 0,
' e% w1 R: P) @  H. a! B                .gpio = DA850_USER_LED1,
0 {( b8 j0 h- {* h! |) E                .name = "user_led1",
; i! f* v3 `( ~7 y- a                .default_trigger = "default-on",
! T$ ~8 w' ^' F2 d1 C8 q        },
) j; T/ C- `8 t- u! G" v2 f. }        {5 r7 e6 x8 Z4 }
                .active_low = 0,# d' t; H4 L+ Y5 c. W
                .gpio = DA850_USER_LED2,
& A# u, u, ]7 W" D5 X. U$ g: J: D                .name = "user_led2",7 ?9 O0 n! G7 A* ^. {
                .default_trigger = "default-on",
0 n8 w- q+ ^# v3 Z        },
, t& d! J% b6 r% F. M  L        {+ f$ P0 P* A# g+ X# `
                .active_low = 0,
1 j$ [2 d# H! k/ \1 ^1 k1 s1 e) f                .gpio = DA850_USER_LED3,7 t$ l& f% E9 Q8 Q1 e
                .name = "user_led3",
: E" u0 A$ q: @/ v. Q2 R5 k- M                .default_trigger = "default-on",# F" Y8 K" Y, q8 I1 a0 q. Q
        },8 @- Q7 \( c! G# q( l
};
* j2 }# g9 A8 Z0 ?  j3 I
- S; d" F' y9 ^3 l' q" @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. r$ G; e! r2 t$ h  J  ~5 i% w5 o        .leds = da850_evm_tl_leds,
/ L9 M  l  M- j/ c( e& z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 j4 ?* I  V, C/ |4 i};$ D& l- [  O7 m9 ~' z: P+ |8 x4 L
7 B8 w8 |. Q3 v# a
static void led_dev_release(struct device *dev)
$ X. _$ [8 d( ^, i$ O3 e2 U( I{
( h  i6 X- p$ Z) R1 t% E2 O, I) J};" s" @5 h, A4 C2 n/ u. n

, _, t+ U4 U" O1 A+ ystatic struct platform_device da850_evm_tl_leds_device = {2 z, Y- c$ c$ }' w2 F& Q2 ?
        .name                = "leds-gpio",% V* i; _; S. f
        .id                = 1,1 K4 O# P7 L- S* S3 U3 _: u
        .dev = {
$ Y3 W9 H4 L9 S                .platform_data = &da850_evm_tl_leds_pdata,
% N5 E8 i' T& B                .release = led_dev_release,
" D8 y, z/ W4 m1 y        }, Y& ]. g  G% Y
};
% d( z6 r. n. v5 @1 d& G
& x, j- `, {% m! Gstatic int __init led_platform_init(void)
4 g1 M. V5 t. B8 q; ?{% d6 W. Z- d* |! U3 w
        int ret;! y6 r) b7 J& Z
#if 04 S' l. S- o9 N7 [. \0 \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) U% M" k: P& I2 d0 ]; h, x
        if (ret)
# o, u2 M. Z  `, G7 |% D* b5 ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 F+ _# J% J0 L& `
                                "%d\n", ret);1 f* q$ v# z9 l( B
#endif6 l" k' k0 ~+ H  }3 q+ n' B2 z( k/ `
        ret = platform_device_register(&da850_evm_tl_leds_device);: F. w% _; z" E( P
        if (ret)
1 d$ K: S' s; _; i" K. H8 d5 e- F                pr_warning("Could not register som GPIO expander LEDS");: I, I: _# B+ N
        else
0 V5 N, [  I3 }: G& H                printk(KERN_INFO "LED register sucessful!\n");
" q6 x! }- q+ }9 J! H, L- s) `; ~' T  M1 _% D( x
        return ret;
  |% ~( _! X) K}9 P0 d# I; }* w
  W# G2 _) [1 U: F  t! e( N  h3 I
static void __exit led_platform_exit(void)1 j6 k2 K( u7 ^0 D/ S
{; u" o& ^+ a4 H! T
        platform_device_unregister(&da850_evm_tl_leds_device);
% w9 G) y  j$ u  j2 q* n& `: w
+ q( x3 D* r' Q% p  I0 P" P. _" C        printk(KERN_INFO "LED unregister!\n");1 [+ r. L4 d3 B; U& {& Z4 {' H7 Q
}
: U# s$ R7 N- S$ I5 N  X7 M, i/ r' v( A' y, ^: u
module_init(led_platform_init);% P# _8 S' J9 L. n
module_exit(led_platform_exit);' f( l" ~6 q: |, {  z

$ {7 X" W' _0 D' Z9 v7 uMODULE_DESCRIPTION("Led platform driver");
- s) N+ `( p  s$ L( P4 z; R9 fMODULE_AUTHOR("Tronlong");/ R. F5 V! ]; B( c, |- k% |) x0 o' X; l
MODULE_LICENSE("GPL");
# w- I; Q: r$ _1 T
* \- T: \4 I8 m* s# i6 O3 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 20:56 , Processed in 0.043486 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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