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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ O4 f) l- |' B6 z# a& d9 A#include <linux/init.h>: J9 `8 V& M0 |# C- l
#include <linux/module.h>
3 L2 q, i7 W# E- v( L1 i#include <linux/kernel.h>" e2 U( d9 P7 _! ~6 S0 h+ \1 ^
#include <linux/types.h>2 q* ^: A) Y; i" a, Y3 G$ _
#include <linux/gpio.h>& ^% w4 Q. Y  M( T
#include <linux/leds.h>' d, H1 E- A' K+ X+ d
#include <linux/platform_device.h>
! x, g, X% o3 s
, V  P- c; c9 t/ b( F) }2 X) `: w#include <asm/mach-types.h>2 G6 }9 x5 R. f) t  v
#include <asm/mach/arch.h>
& n; ]# ?5 K! u8 R; E# L! ?#include <mach/da8xx.h>
2 w% [; o& x0 T2 P8 G#include <mach/mux.h>3 s' H& c( u' n3 g2 \
; K1 {) o* w: x/ |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# ]9 r9 t. s4 v( h. F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# ]) D5 x. C- s$ @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( B2 ?( b" [* F3 L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 P# B, ]. k1 E3 j+ e# f+ j
. f9 Z7 L7 ~: E+ o# W
/* assign the tl som board LED-GPIOs*/
3 l( S+ M, W( c- X) X7 W/ y6 F2 jstatic const short da850_evm_tl_user_led_pins[] = {
. K* |! _- G" _9 c9 d        /* These pins are definition at <mach/mux.h> file */
* ^3 S, n) w) U' {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 v9 Z# y; ~5 `! q
        -1
% q8 t9 ^- H& ^) t& }7 m* |};
7 z5 i! C0 j5 z6 U$ F: u+ D0 V( q3 O9 z; c% M% y1 g
static struct gpio_led da850_evm_tl_leds[] = {& a5 v3 ^* t/ Q3 U! P. [5 F
        {5 b# Y# h# X, v' f( d* d& H
                .active_low = 0,8 r8 V+ F0 k% u7 y7 v6 q
                .gpio = DA850_USER_LED0,
8 t$ A+ U- o. m* a: J                .name = "user_led0",* _& I' A  h, E
                .default_trigger = "default-on",
9 E$ x' i. g! A+ @        },
0 f& c. K) ^- ^* u6 K        {
* ~: m6 g( W* M% c, h/ N                .active_low = 0,7 B- t& u8 l% X3 ^1 ]
                .gpio = DA850_USER_LED1,
2 k+ L4 m4 b) h1 B4 K! F: C                .name = "user_led1",
+ Y5 ~5 R3 L: Y4 K                .default_trigger = "default-on",0 f% b8 A! c: T
        },4 d3 ?. W; Y# @( N- Z* d' D
        {
0 n( W6 o: M8 c                .active_low = 0,1 I0 g$ |$ O0 m; F% ]4 N# T
                .gpio = DA850_USER_LED2,  |4 T  \4 h, x2 b. e7 c$ `. r$ t
                .name = "user_led2",
' h0 z9 M# j4 `7 @1 v0 r                .default_trigger = "default-on",6 D+ A6 C, r5 W0 N
        },
& x, G6 H$ u4 x8 U6 g        {$ l( i& b/ \1 A. g
                .active_low = 0,8 n2 i8 t( K* s5 g: o" Q
                .gpio = DA850_USER_LED3,
. K( B3 z5 |5 X  Z7 z                .name = "user_led3",
1 p& R, n1 ~" \2 S& N" |                .default_trigger = "default-on",
0 u  }9 [) o3 D0 Z        },4 |6 ?- p3 k# ~5 X% y: B8 X& U9 o& o
};! x7 Y: E! L# ?( F% _4 V
8 }" C* u! \1 n2 K9 H" u0 X( q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 c$ `- z: d6 z1 b
        .leds = da850_evm_tl_leds,
" [0 n/ u; k" ]* ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* l2 n6 B; U0 s1 w, u
};' s4 o7 D1 f  u( ^; Z4 l
5 p/ @* n& `6 m: q/ Q
static void led_dev_release(struct device *dev)
5 X1 j  z. E  Z- q- ]{
) e9 M( |% H" H: \4 v};5 ]) k6 n( Y/ a
- i" @- D! n( \0 ]5 f
static struct platform_device da850_evm_tl_leds_device = {
  @3 X" O3 w9 E1 t, y        .name                = "leds-gpio",
9 N0 h+ B; @; L5 t8 [        .id                = 1,5 f( ?: `' V  I5 r: Y
        .dev = {
- t( j! Z7 f6 y" A                .platform_data = &da850_evm_tl_leds_pdata,
4 \5 [% S7 o- m- w0 R; y6 b                .release = led_dev_release,
4 }* v/ T: I# F6 O1 A  I. H) J# A6 E+ w        }
* K5 A3 ]: \. i% u7 `};
7 a3 [5 F; a( m2 k" h7 r1 Q/ o$ q8 ~- k) {  {, R' I
static int __init led_platform_init(void)
( b) A- T1 a1 L  f! T( C, w& R{
) U0 F8 o. t0 b: J/ V        int ret;# e3 H* C1 H6 M9 o) `7 v# L+ f: b1 o- Z
#if 01 L6 P7 ]9 r3 u, W8 v' ^& Z" |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( A. q0 ^- x( r* B0 g5 a        if (ret)& _( a  y) E1 J& k  H1 {7 |% f3 P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% ^. v1 }  G9 U# t2 a: [, i
                                "%d\n", ret);
" T6 c2 U! l$ R) e8 x#endif4 N' J, u+ G3 S5 {4 K: `" a
        ret = platform_device_register(&da850_evm_tl_leds_device);6 U( d" a, W8 P- K' u( D/ p
        if (ret)
( I5 H* c& c$ x                pr_warning("Could not register som GPIO expander LEDS");. F! f2 `- ^2 i8 [7 M9 a
        else6 I" k/ t8 F9 |9 d, K/ C7 z
                printk(KERN_INFO "LED register sucessful!\n");# N2 a, r& V+ E5 b" n* }' {7 w' D! V
8 P/ R3 O# |1 W; q- \
        return ret;
; p- j6 M6 W9 m6 J, C}
2 z# k. m4 _, W; F5 n( t! R! x# u" c5 }% p6 i1 q( q. L& o* @
static void __exit led_platform_exit(void)
  n, T8 f7 d& l: @) |) [" \! b{) Z# M6 B; \% U; `9 W7 N2 B3 Y
        platform_device_unregister(&da850_evm_tl_leds_device);6 H1 x' u$ H) h6 A, k2 c- M
7 ~" ]7 x, A0 [6 ]! O
        printk(KERN_INFO "LED unregister!\n");
3 O4 Z% V1 \( Z1 |" N7 E' z& Z}
1 L2 e: P2 X" K$ L" ]4 U1 C+ d- n) k0 X4 D2 J  C9 Y
module_init(led_platform_init);! c. m# ^( b6 o3 J2 w
module_exit(led_platform_exit);
3 X) ?% H* V: P# M
( X+ _% i1 s+ o  Q7 v( HMODULE_DESCRIPTION("Led platform driver");. r0 f% J! s/ S! K! B1 O/ _
MODULE_AUTHOR("Tronlong");
7 t2 V0 l9 U) \2 g' sMODULE_LICENSE("GPL");. c# R" q" V7 y$ n4 y  ^/ i

. \6 _/ W* D" q7 z& g) Z4 ~" G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 23:58 , Processed in 0.039452 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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