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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! D# [( d- }) S, O#include <linux/init.h>) V3 A. u9 d7 U) q) B" ]% e
#include <linux/module.h>. Q/ @+ A0 i/ ?& [, Z1 p
#include <linux/kernel.h>' O4 o* I7 v0 i$ E/ Y( i
#include <linux/types.h>. p6 \, Y4 c2 Y. w7 c0 t3 N
#include <linux/gpio.h>- ~  {+ _* P$ [; g+ K
#include <linux/leds.h>5 h! K9 k/ H7 W& w
#include <linux/platform_device.h>: \; A+ F4 i7 V+ B

6 l# ?$ c" }# O. J#include <asm/mach-types.h>7 }) f& p6 X+ P3 X
#include <asm/mach/arch.h>. ~* w/ L' C5 D0 X3 k/ m9 Z
#include <mach/da8xx.h>
# _2 g# O4 w- J0 x: P3 q. X#include <mach/mux.h>9 c  f% q5 ~* N$ N% v5 I# c% k7 M, Y
* n! j# U+ v4 f* F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# G8 o& i: m9 v5 f! V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ h! o6 e# |3 c  Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% }5 R- T% Z( `2 \0 H+ k4 p( q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ b9 q. a- o+ Y
" _1 w6 T% C' R/ L/ ~2 \
/* assign the tl som board LED-GPIOs*/
- R2 R7 |& Q4 J* p7 R1 I9 F5 ^static const short da850_evm_tl_user_led_pins[] = {
( b. u: z' K- E/ m6 T8 [" w+ X        /* These pins are definition at <mach/mux.h> file */
# [/ [5 H7 L* x% {: m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 U* N6 L: h4 L7 H# Y# D% L, o
        -1$ t7 f# e5 Y+ H8 F* Q
};0 Q" ~9 V7 b7 }0 ?: D

6 ^& c5 h( p: Kstatic struct gpio_led da850_evm_tl_leds[] = {- I4 P1 x7 l% D( w- q1 E
        {
* c" e! ~) G* j' _$ L                .active_low = 0,
* z( V7 {- J: K# f& K5 p1 v                .gpio = DA850_USER_LED0,
% o7 |, F& {- i+ K- {                .name = "user_led0",# R/ x+ _: F! `/ `2 X8 @
                .default_trigger = "default-on",3 {7 q9 \' p5 H5 y9 }# J
        },. J) y3 q) ~+ i1 x3 Q( b
        {6 w& j) u+ r8 v7 u
                .active_low = 0,, G$ }( {: O4 y9 b* ?
                .gpio = DA850_USER_LED1,
1 f" t. \9 h# w$ I% W6 }                .name = "user_led1",7 B. P6 U( ~' K, y9 A9 g0 \
                .default_trigger = "default-on",% O# A1 A+ p" q$ R
        },
5 n9 a# E/ U8 ~- i        {2 k/ x; U$ P$ ^$ \
                .active_low = 0,
, M8 f* Q+ E) b                .gpio = DA850_USER_LED2,3 p  c& r6 p" e+ b
                .name = "user_led2",  ]0 q+ ~$ ~5 ?2 b6 Q( J
                .default_trigger = "default-on",
( `* p: p; u3 U# @8 [" m        },! {% T5 G! b7 l& S7 S# P7 _! r
        {. h! C. m$ o( ]* T  }
                .active_low = 0,
& w$ Y/ X, _* e4 A( r                .gpio = DA850_USER_LED3,. ^0 n" V( U  O8 ]. F2 K
                .name = "user_led3",4 g4 T+ S& z  |( ]2 I  o
                .default_trigger = "default-on",
. L5 @" O  r3 ~, ?, h' c        },
. l- t2 j, }2 L9 A};
, x# C- x5 a$ Z& x6 i0 H& s+ B6 B- H$ `9 P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: h+ I6 K( A% u- z7 y        .leds = da850_evm_tl_leds,
  b  F0 s7 d- i" M, S0 v        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& d( w% h1 U1 _- _% y
};+ _3 W& c6 U' p' p4 b7 m4 n$ k
$ T/ Z! J% i! r2 B, U3 ]
static void led_dev_release(struct device *dev)2 ~& ]4 M& m9 _
{0 ~$ o, j; y, Y4 |2 v& F
};
3 r9 [# F- Z! }. _0 T/ A1 p  ?; J* v% k
static struct platform_device da850_evm_tl_leds_device = {) Z8 ^. ?( n& x6 o! `& ?- V
        .name                = "leds-gpio",
) B. u4 {- B" ~3 k1 i* ^4 P        .id                = 1,
0 X) u5 E& Z( `6 q) u        .dev = {- W7 \. w/ a5 K3 w4 i
                .platform_data = &da850_evm_tl_leds_pdata,8 k% I( w+ L: J8 d" I
                .release = led_dev_release,7 |( V5 L+ [9 x! p6 W6 H
        }
+ W5 p! ^8 L6 \' e8 f. U9 X) y! Q& j};& O- O0 X/ i3 Z+ G& g
# Q( i2 o' ]: L2 r
static int __init led_platform_init(void)
# l+ L, I( G; L. `# K{
* J* e) M0 a9 Y. J$ ~        int ret;, p. V0 E5 I. P7 e5 b; [
#if 0
+ e+ o3 J7 c  H& T! F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 G5 \: U+ a- u' q
        if (ret)) i. g2 n- \6 X# x
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% X6 ~3 {2 E) g* U. S: N
                                "%d\n", ret);  s! _  w- M2 ]
#endif* k  e) G: d" }2 y( I" j
        ret = platform_device_register(&da850_evm_tl_leds_device);: o" z( t) ?9 y
        if (ret)% ]1 \( d( q: T, L4 R$ V
                pr_warning("Could not register som GPIO expander LEDS");
; a. q2 ^+ q4 D1 }* I6 Z7 b& f        else% x& W, h* X- s# X7 s5 I2 _
                printk(KERN_INFO "LED register sucessful!\n");
$ h* H/ P, j! }( W- R" K9 p) O( c/ P9 g- }3 [% W8 s1 R8 t7 M) `
        return ret;( D% d* g$ T$ N5 e
}/ Y# P; ]. [8 q# T8 B4 l4 @3 z8 y

" L4 o) Y. F' _# i$ X3 _static void __exit led_platform_exit(void)
: l5 K' K6 h& S, L- o& L, i{
& g6 p$ f, e* q' F% g: I        platform_device_unregister(&da850_evm_tl_leds_device);3 _+ v; `* I, V4 p% u1 ?8 l5 }0 n

7 Y% o$ S0 D, Z0 n7 n        printk(KERN_INFO "LED unregister!\n");
* o+ a5 L0 i9 B: B5 m. N- n( F; W}
0 G0 e% `  T! {+ m' |0 s
1 ]% ~% M2 l( Y9 jmodule_init(led_platform_init);% o" @5 e8 Y# ^0 @" R$ d" V
module_exit(led_platform_exit);# s" W+ u5 `! j! K; q: b% L

, N7 Z0 [$ n0 W% vMODULE_DESCRIPTION("Led platform driver");
, a/ g" u: Y) Q  ~& AMODULE_AUTHOR("Tronlong");
' y5 X! J7 c9 F$ ?, U5 `/ H: d& eMODULE_LICENSE("GPL");
* }7 a, ?% w/ f; u) p7 N4 f& [! R* S: U* A4 M$ a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 13:57 , Processed in 0.039311 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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