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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 |, v6 _, Q; L
#include <linux/init.h>* T8 t4 B/ ^+ ]8 `
#include <linux/module.h>+ y! d  B1 g! N3 {: O) i
#include <linux/kernel.h>$ d4 K% Z: T- p1 c! R8 E
#include <linux/types.h>
! q+ B: v8 c) N: |  u$ N* L#include <linux/gpio.h>
2 Y  _! K2 ~! O: f% X#include <linux/leds.h>
* `( K2 p4 ~# i" z3 F$ L- o#include <linux/platform_device.h>
0 }6 G8 P) f- [$ r# i, @! ?9 `7 T, X+ d& W7 U6 t! Y: z
#include <asm/mach-types.h>
. `6 K; g2 ^5 S5 S2 G) [#include <asm/mach/arch.h>
0 d7 Y! a6 W0 b! y& }3 I2 ]#include <mach/da8xx.h>: ]6 s+ ~7 _& L
#include <mach/mux.h>2 Q' n1 ~- K# d
% \7 T1 b1 ]9 }1 z- [8 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 A2 m  L6 C  L7 M; c/ {. z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* ~0 k3 B0 ~# e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 j+ s7 V3 ?; k, n3 q6 N3 u% \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 Z. ^( P/ x. I3 z9 p8 B
; [8 G) f& {5 s5 F' J5 W
/* assign the tl som board LED-GPIOs*// Q& _8 y( T3 z& B$ |. g$ L+ M) t9 d, H
static const short da850_evm_tl_user_led_pins[] = {3 r" u4 j6 H: Y; A
        /* These pins are definition at <mach/mux.h> file */) S) \+ [& g; F/ h4 M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 T  k! q: F5 @) l" f% i- H        -1. D+ |& P2 O& `: v0 `% p+ B2 ]
};
: J) R3 g4 ?) R  T/ j$ I$ `, z, N9 @; d: W( Q. w8 j8 {5 K
static struct gpio_led da850_evm_tl_leds[] = {
8 }2 M' D5 \+ }5 Q+ X" `        {! ^0 h- z. \5 o+ C
                .active_low = 0," H+ E5 i8 }, C6 ?0 I6 p/ Y
                .gpio = DA850_USER_LED0,
: c, J* J/ k2 |1 o& h' [                .name = "user_led0",, n) {1 S# C& b; I  J$ i( |# V
                .default_trigger = "default-on",9 F5 g  O. x1 S6 D; _! F
        },
) G2 h5 z9 O* ~; O( U        {
* ?8 a" V$ K$ Z7 J9 J4 g                .active_low = 0,# U' u- u* G8 M3 O/ r0 |
                .gpio = DA850_USER_LED1,: `  O2 s3 `( z1 S; G' b
                .name = "user_led1",* D- A1 @3 W+ [# R4 c2 C' I
                .default_trigger = "default-on",
" V, z6 u; E3 B$ B" K        },
, W5 D* D/ x) x& T: n7 |7 `        {
9 D' @8 y5 I' v; m                .active_low = 0,) D9 l/ O; ?# Y- P
                .gpio = DA850_USER_LED2,& l7 L$ L4 O4 u$ y' N6 p" S
                .name = "user_led2",
/ K4 r. u, o) m$ y1 W- S& v                .default_trigger = "default-on",  Y9 o5 w) H: R# i  C; A
        },
: v) B8 y2 W4 O0 C/ Q2 x9 d: \        {
; ]% V1 J' m9 J6 b                .active_low = 0,; g* Y) F% r. B- ~% Z" o! f0 r
                .gpio = DA850_USER_LED3,
4 k0 E) I2 K% @7 u, d. x                .name = "user_led3",; h1 _% B1 V9 \7 b- k1 x) ^$ Q; A1 j% J9 b
                .default_trigger = "default-on",
3 ^' J. o0 C+ \- T) x0 y        },
" W$ l, \, N  f/ U3 ~};
) d, }+ d7 @  {/ ^( k) S& V
0 k" R/ d& S, f; ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# s" W  E. s$ m        .leds = da850_evm_tl_leds,+ u2 m% n4 \: Y" q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, n9 {+ n1 E; C. h};
6 S5 j5 q( s# h! u  m( D: f6 \- p3 t* `8 H9 j0 l$ q$ ?. w
static void led_dev_release(struct device *dev)0 O" {1 k& v3 _- A0 o- e
{' b- H! q5 V4 h
};9 S) V4 S- V/ j

9 n2 o3 `& r# t" }. Ustatic struct platform_device da850_evm_tl_leds_device = {+ A' U: r. y5 o$ p5 D# `
        .name                = "leds-gpio",
  X0 W% d4 Z( b0 r) q        .id                = 1,, t9 a5 n7 T6 ~' X. `  }4 r
        .dev = {6 D: J$ I# x" [% S) \3 B! C! Z
                .platform_data = &da850_evm_tl_leds_pdata,
  _+ z' B& K. V4 a7 s                .release = led_dev_release,
. i" X: x2 l+ a7 f        }
+ K+ }# q( L$ C; `3 c" }};* G8 Q& r. a: l- v

/ E- f2 H3 E$ G8 @& ]1 Kstatic int __init led_platform_init(void)
. C( i: Z7 W% ^: R* m0 X0 F) m' U{
% L4 {" p5 G4 h% m7 i0 b        int ret;
# s6 }! a$ t+ ~4 S- L#if 0
1 u/ t) m1 P, X. ?6 A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 L1 j' F: o/ w* e1 E7 e        if (ret)
% N1 I+ D' ~  N; h5 U; {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) _; }6 e% }4 I$ J$ f6 h                                "%d\n", ret);
. Q" I9 v- R4 u2 e8 g+ j#endif
6 h, D7 {6 M8 Q  p: I        ret = platform_device_register(&da850_evm_tl_leds_device);
" K! f6 c% a7 {( m        if (ret)0 Q3 a/ g/ E+ y
                pr_warning("Could not register som GPIO expander LEDS");$ [' X9 G5 u* R& d. c8 o9 u: `1 E
        else
' }+ i; S- T* u, s1 g9 d                printk(KERN_INFO "LED register sucessful!\n");
* I$ |" |3 R3 e& ]2 g6 V% G
$ Q# d/ A8 H- {4 Q8 m* T. r+ G        return ret;
. I+ o7 z% n2 x}
# }7 Z' u' l- I8 K: b& i4 a0 t/ ?/ R, B
static void __exit led_platform_exit(void)
7 _5 M" M- H- ~& J+ G! W) p{
# ~8 F) i" @: ~; h) L7 Z        platform_device_unregister(&da850_evm_tl_leds_device);5 D8 Z& l/ e: e" x0 P2 [- g8 x/ J

$ ]7 V5 R$ O2 O4 E) @- a9 w- E( t! ^        printk(KERN_INFO "LED unregister!\n");
, ]6 T# ?9 v: J9 C}
* F" b9 h8 c: f# ]5 Z
, \, K8 m; j& D0 D; V1 V+ C( m! dmodule_init(led_platform_init);
9 K& R, Z0 I$ |module_exit(led_platform_exit);
5 z/ \% Z6 [2 u, k0 Q* \
/ r- Q/ g- T5 R+ U0 Y4 {0 RMODULE_DESCRIPTION("Led platform driver");
4 e% s. b1 i2 I. J1 c% H2 |# pMODULE_AUTHOR("Tronlong");. U0 a0 k5 M6 o0 j  {" ?
MODULE_LICENSE("GPL");
! W5 r2 ]: q& }7 x% u
4 f5 b9 }8 v: w( Q3 w0 @6 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-13 06:00 , Processed in 0.040207 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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