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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! L2 J) G0 Y9 E5 I1 N#include <linux/init.h>
; W  g$ t3 Q: o#include <linux/module.h>1 E8 o! m1 l2 k& d
#include <linux/kernel.h>+ v) {  Q( p# G1 d
#include <linux/types.h>
) _7 C/ F1 T4 O1 [0 o#include <linux/gpio.h>! e. a+ y% ~# {3 K2 v
#include <linux/leds.h>+ q  w& v: L' T' \
#include <linux/platform_device.h>
! p* t1 K' N  h3 i5 R
  p" w2 w, W9 {, _#include <asm/mach-types.h>
! t/ W' h" o& N2 j: }, O#include <asm/mach/arch.h>
, V7 s$ |6 n! X, C$ X* j#include <mach/da8xx.h>
$ s  ^% g2 P3 n, l6 O$ n#include <mach/mux.h>! u( N" [2 H" }9 x2 V1 J
+ p5 E; \' u0 R* M2 b( D* E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): P* ?, D; V/ f7 O+ g& J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 m3 c' M8 R( z$ R7 W' U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( }! k$ Z9 w/ y' A5 ]& D' Z2 d#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ A0 C0 V; E  Q& Z
8 H; q& D1 z4 b. ~3 r4 r  [* f
/* assign the tl som board LED-GPIOs*/
; q; J* v/ j8 c! }, Qstatic const short da850_evm_tl_user_led_pins[] = {
" U% o' m; d; J- b0 _( v- g# t        /* These pins are definition at <mach/mux.h> file */' H& j  f9 x* Z/ n/ h! J7 E9 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 T/ ~- s# n0 Q& u1 B7 Q        -1. @7 j' o& ?2 Q; N; c) o
};
- h1 T& T( {3 b  w* @7 C$ P9 i4 m2 y
static struct gpio_led da850_evm_tl_leds[] = {
, J+ F. R. d$ x& R- z' [        {
  g9 o$ f! G* ?, N$ |                .active_low = 0,
7 q0 E+ }$ _) D; m                .gpio = DA850_USER_LED0,
' M1 S- P% k2 j6 T, h                .name = "user_led0",
& J9 @: p' W; P* W                .default_trigger = "default-on",
7 S+ w3 Q0 |7 R+ r$ h        },6 o* @; q/ m  _: U
        {: ?' m  I; s+ R# n! I/ g
                .active_low = 0,
( E  j9 ~- F* v& z) t9 B7 F                .gpio = DA850_USER_LED1,1 p6 G& @' }, U9 b
                .name = "user_led1",* g* @* i; {4 Z0 Z% P$ C% k5 R+ n4 Z  r
                .default_trigger = "default-on",
, U# y0 }' G. ^0 J) o0 q! X  A        },* f* J. N- Y) C3 o' p! l" r9 x
        {+ |2 k, q. o6 ~: U5 l
                .active_low = 0,3 H: }+ C+ }& l& \
                .gpio = DA850_USER_LED2,5 A# T  E6 f+ \0 G. [
                .name = "user_led2",6 d$ R1 X8 I5 H9 H6 }6 \
                .default_trigger = "default-on",
. r9 `& n  S# X% y- ]# I2 D        },3 J2 M0 w  u- z  {
        {
: C$ l/ H+ w- T! V" _; `- Y                .active_low = 0,
3 N1 Y8 r8 \% [# l9 }7 z/ q$ u                .gpio = DA850_USER_LED3,) u2 a& g6 J, u& R+ P
                .name = "user_led3",
- D) F5 a9 L  Q                .default_trigger = "default-on"," d# f) `# m( l( u: A) Z9 U& _
        },( u9 a: |. F+ S
};$ W" u* n) }( O5 m- N, r! X
4 y1 Y5 c) T. \( P( O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; f# u2 L/ S" Y: _  Q
        .leds = da850_evm_tl_leds,1 C+ ]$ N/ K6 M7 L$ F! m5 d6 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 T( t1 d, E' d( h. b, M; w
};
9 s. k! `' P8 i" \4 W
( E$ \  a: j! J% E$ estatic void led_dev_release(struct device *dev)( Z5 d& O1 w/ D1 G! ?
{+ ~# R; c$ E" j% {; ]' t) a
};
# k+ m1 u& A3 B+ _! i. R
6 w4 P# Q  C2 N- T" Rstatic struct platform_device da850_evm_tl_leds_device = {; [) t; T- H" j" F$ U
        .name                = "leds-gpio",! B# c  F2 g/ W- v6 T7 W
        .id                = 1,5 V1 P7 P# Z: {. ^
        .dev = {0 V( q: Y$ u* S2 R9 ]0 n4 S* C
                .platform_data = &da850_evm_tl_leds_pdata,0 f/ f) a) W& Y" J7 x# g( w) s* p( w
                .release = led_dev_release,% R4 Z/ B. s" P& u" d$ w4 g
        }
5 E( w2 n6 G6 p# m$ u, R7 ]' e9 ^6 Y};
* ^  G" I0 f$ b# w& X& r( F4 E% W
static int __init led_platform_init(void)# }8 T6 T2 Z. d9 w1 X- r8 _
{* B* I/ i6 w3 D; r0 V3 x
        int ret;- I* r* b% H& U" B
#if 0- t. X' o( p5 k, N2 t. B+ W2 N# u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( S/ a9 @7 Q* q2 y0 o$ Y
        if (ret)
! k  l( w# f: _) Q3 e8 W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% v/ b8 j; n+ q* d1 \$ c* F4 L
                                "%d\n", ret);3 E+ T; A4 K9 @" {0 q
#endif
, Y! n' q) [5 g3 ^& @+ R1 W. I        ret = platform_device_register(&da850_evm_tl_leds_device);
7 O* S% A* n( w+ @" F0 |4 H; c        if (ret)" X' y8 ~0 d! k- T6 C
                pr_warning("Could not register som GPIO expander LEDS");* x1 v) l5 p( l/ T/ A
        else
0 z4 P! E) z$ r& `1 w$ m- m                printk(KERN_INFO "LED register sucessful!\n");  [6 n" \, M# R0 h. e
6 f; v7 e+ ]% Y
        return ret;- g$ f( u8 _% \# `. \
}1 |6 I3 {; x3 T1 b' {

8 X6 p# a7 _8 ]. Q* }: ?static void __exit led_platform_exit(void)
3 k2 }$ G$ e+ f7 m) O{
3 O# Y* l7 X$ Q0 m# o/ ^        platform_device_unregister(&da850_evm_tl_leds_device);& m2 c( G- n2 R

$ A4 T: ?5 C) R# v8 x1 ?        printk(KERN_INFO "LED unregister!\n");
# b% w# I# h. c: A  s}
- F( u3 X  b) b: t! ~4 f  c2 L( E8 p0 w
module_init(led_platform_init);7 l4 X* a0 z9 ^$ p2 O% [+ |
module_exit(led_platform_exit);+ w2 `& d" q3 E! {) e+ y% O
- C6 t6 W- `2 f$ P' P) n$ j
MODULE_DESCRIPTION("Led platform driver");
4 p/ L( P# C2 D& u$ iMODULE_AUTHOR("Tronlong");
9 A' t( `  r5 ]MODULE_LICENSE("GPL");
# |1 g7 Z9 t: T7 I
# L7 M7 ?/ q: j4 H& g0 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-19 02:25 , Processed in 0.038623 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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