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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ p. z* y  \6 m' T6 S6 E! W#include <linux/init.h>5 }& t0 H+ |8 G
#include <linux/module.h>5 J. ?% ^  C9 {7 {1 }6 a
#include <linux/kernel.h>
6 _  _5 i$ O5 h0 F#include <linux/types.h>
/ R# x, h, h! O: Z#include <linux/gpio.h>
. {) s$ s+ P+ X- ^# |# p#include <linux/leds.h>
) k6 C0 s4 Q: p! C6 Z, ?#include <linux/platform_device.h>: {$ e: ]8 P% x" F/ ^. G! ~6 E
6 A- y# V( H0 p4 d9 E7 b9 ?
#include <asm/mach-types.h>5 v, z! B; p1 e# p/ L" g) l# S4 [
#include <asm/mach/arch.h>
# {4 C8 j" I7 K8 J3 J  S, i' l% k#include <mach/da8xx.h>
/ T* R3 ~5 r1 ?; R9 [( |#include <mach/mux.h>$ D  B  G, }  B2 b* U
  F( c( R+ w! J/ J: W8 A9 V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ f1 ^+ F$ L2 l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  ?5 U# T& m$ x) q8 u& k$ p5 [" ]9 L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 s' |* `4 A- ~. p% V, D* a$ g7 Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( P" }( [# Q; K* @1 M- j0 I" i! ?4 F0 z" I. ~1 l
/* assign the tl som board LED-GPIOs*/* e; I- }% W# |5 q# |9 k
static const short da850_evm_tl_user_led_pins[] = {) ]8 A$ _+ \) r2 _9 Q& g
        /* These pins are definition at <mach/mux.h> file */2 X6 z. S: }7 {9 P7 n4 ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," N# X& U0 K3 I3 X2 T, ]
        -1
* \0 l5 z0 |( @8 u% ^' C+ U) k  a};& w9 }" I1 b/ V0 m, b7 J5 J" A

) u7 g0 e" r# W/ @static struct gpio_led da850_evm_tl_leds[] = {2 I9 \# g6 w# e
        {4 {" ?* R' e/ u: M+ m2 V5 R
                .active_low = 0,
+ k) u3 d7 I6 M                .gpio = DA850_USER_LED0,5 ?, q. r3 N& L4 ]$ W$ t# E/ }9 M
                .name = "user_led0",: Y" O4 j$ m8 p1 n1 |' z" W8 G
                .default_trigger = "default-on",- B, ?9 h* Z$ p" i- v$ K
        },6 v# I5 {1 M9 S* J% Z. i6 k3 h
        {
- [* Z5 Z/ z$ n3 C, f) d                .active_low = 0,
4 a2 a* p  V# M4 N8 ?& {- a                .gpio = DA850_USER_LED1,9 t& k8 W# m2 W' K; c0 L3 V
                .name = "user_led1",
& m0 A7 W; n3 L$ s2 o- i) p                .default_trigger = "default-on",
, N% `4 }/ s! b- ~) f; J0 ^        },
+ J1 W8 i! T6 m3 ?- g        {
7 K* S. I: S& Z5 n0 m( a; Y" ]: T                .active_low = 0,
* ]! b8 o0 K: r                .gpio = DA850_USER_LED2,/ f( a0 D7 Q$ ?7 p% x
                .name = "user_led2",- d" `1 x) t6 r; Y
                .default_trigger = "default-on",- _7 u6 f1 G5 `! {( W9 o* e
        },
# m' W- d% _, a4 M/ S* z8 L. X        {  h! g& F3 d' M
                .active_low = 0,
4 S7 R7 R! G$ K                .gpio = DA850_USER_LED3,+ ?/ z7 t! W9 n) f8 E7 l
                .name = "user_led3",
" g7 Z: T# G! H5 I4 g9 L                .default_trigger = "default-on",. V. G2 F/ U& N7 {- m" h8 j, @2 ?/ D8 h
        },
6 o: [/ l& @) n; k};9 }5 h' V& e+ u0 ]! d& e

& i- k7 ^2 q8 j% w! W4 t: Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 V3 M7 Z! j5 P. e        .leds = da850_evm_tl_leds," w9 t6 i6 T4 _0 |" o1 L0 v4 m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) K/ X% @1 V/ j$ |: |" c( b. v3 ]};& o4 \6 G4 B, ~  ~0 ^

$ u- ~' u$ n) M1 A) qstatic void led_dev_release(struct device *dev)) ~* O5 p; {* A7 H3 _+ a' ]3 r$ W
{
# M, r' H! |* z0 B};5 Q' @" s# R4 B4 D4 t" M9 v6 r( W& ^
! i6 J& G4 a) H
static struct platform_device da850_evm_tl_leds_device = {
" C5 K, M0 a! J) E7 c7 h5 H, Q        .name                = "leds-gpio",' X( c' f5 L( Y: M% q7 V
        .id                = 1,! V3 I2 c- _' ]
        .dev = {  c0 b# @: R: ]/ k% l( z
                .platform_data = &da850_evm_tl_leds_pdata,
! m% S/ f1 d, v& n  v( S2 s                .release = led_dev_release,
& n0 t9 v: @, u1 @; {1 x- i. ]" n        }8 x, A4 S( K$ v- k! v) Q4 {1 a2 K
};
7 ?" k0 `7 D" L3 ?, R4 Q
+ Y* }" b5 |  _) `2 b; v, Cstatic int __init led_platform_init(void)
  S( O/ ~) `4 v* n: E8 D8 _{2 O6 w; D7 G/ F2 Q) T( C8 i. J! [3 `
        int ret;
" C2 a3 y8 t3 \5 X#if 0& @! O& a. Y$ T$ [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ B/ A5 q, }& X( R# p, P8 v
        if (ret)
* ~' y% }5 s; e" v0 x# e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 m7 h9 k! [3 h- F
                                "%d\n", ret);
' ?: [' |/ A7 Z9 D3 O. |#endif1 D; C0 M3 [2 y  L) L/ L
        ret = platform_device_register(&da850_evm_tl_leds_device);
" R) g1 W+ G: }2 e        if (ret)
* _+ R- u7 o, \6 ?$ b                pr_warning("Could not register som GPIO expander LEDS");
% H, E/ M  B$ S        else
7 p5 g5 K" R8 \. q9 [5 M                printk(KERN_INFO "LED register sucessful!\n");
: O! T$ t$ B7 Z6 W
/ c* S: D9 k( s' R0 j" @1 Z+ s; G        return ret;
$ D# e3 x: J) z2 v; [3 L$ |! r}
* ]# }! d0 b" A. k1 H2 E2 t' ~: m& F! I
. g$ x; G" y7 u8 Mstatic void __exit led_platform_exit(void)
" M& O; j1 t; k9 _/ E" ~5 G: y{; [4 m$ \( w4 k/ x" r% T8 x1 Q' D
        platform_device_unregister(&da850_evm_tl_leds_device);
5 d' V# f# B  f" i5 U
) {4 {% U2 C; t$ d( \+ o5 I        printk(KERN_INFO "LED unregister!\n");
: M! d' @) n5 D) O1 u}2 ~. L) ?  K' B4 g8 T' R, l
7 d- `+ b* [; Z; e. g6 f, A
module_init(led_platform_init);; K2 H, k2 |. ~1 z2 G8 ]
module_exit(led_platform_exit);
& M6 ?+ ~/ x  T+ P5 ^
6 y4 \. ?- o# W" ]* R8 oMODULE_DESCRIPTION("Led platform driver");
' j- s" b8 N. L& u0 b; o  bMODULE_AUTHOR("Tronlong");
8 {8 g, z9 ?5 q" N; @! g( I1 q, G5 mMODULE_LICENSE("GPL");, ]2 j/ Y7 O7 @- g
0 P8 e% `0 Z0 Z% D- s, R4 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 18:54 , Processed in 0.042207 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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