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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- l/ d0 b! j" p7 E
#include <linux/init.h>$ K4 F6 d" T$ v7 [
#include <linux/module.h>7 y; s- e- u9 [
#include <linux/kernel.h>9 |; J5 R$ c% L9 K$ T9 s1 J! ]; y
#include <linux/types.h>
$ z4 N3 r. f$ z% C' R7 z% R#include <linux/gpio.h>
% C6 {/ M* d+ u7 K#include <linux/leds.h>
7 r1 ^8 c8 \6 @1 G( \" _/ l#include <linux/platform_device.h>' U5 C' p5 f9 N  W: U3 G6 F
. x. B# k, L- o0 f3 n
#include <asm/mach-types.h>
2 @# a% p3 M( Q. T. c9 H+ e#include <asm/mach/arch.h>
  c9 z1 v! r6 ]  q6 K% H4 u#include <mach/da8xx.h>
0 j& o: g% M6 O, t+ G#include <mach/mux.h>! }' \$ {; k6 a! k5 }2 }
6 |4 o( m9 x) W! Y5 W+ x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; g0 L' `+ f! h& O7 S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& g! R, o9 g, |  k  w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" Y) x  p; D6 f* Q$ J' q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' t6 C1 A9 V; P

( y3 `) U% C5 G3 a: [" y# M' J/* assign the tl som board LED-GPIOs*/& l2 t* }  \- g5 {) u' ]4 g
static const short da850_evm_tl_user_led_pins[] = {% H$ p0 p1 l$ F# r
        /* These pins are definition at <mach/mux.h> file */3 r, K) y! n$ p: G3 o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* Q  K4 l1 }; W( e$ F' F
        -1( R# @& ^+ [* c3 a: p8 D0 b
};" }0 u5 N# F* ?# q6 U
7 h9 [, r% R' |' |" i
static struct gpio_led da850_evm_tl_leds[] = {
0 g1 b7 a4 _0 }  D1 `        {
) {! M9 c5 T  `4 e6 w                .active_low = 0,/ a* z6 K3 g$ ~8 ]; X6 q
                .gpio = DA850_USER_LED0,
( Z" k2 D/ \, W- I' K                .name = "user_led0",8 u, v7 y, r( K# @0 l
                .default_trigger = "default-on",# L& {5 l: H  ~
        },# c- t( M* `! s8 w% t( q6 `
        {
. K- b! {  Z, J6 x                .active_low = 0,9 j; f  c- M* V3 ^3 R: G: o- @/ |
                .gpio = DA850_USER_LED1,
$ z- q6 c9 P; S4 n                .name = "user_led1",
4 s+ P1 Z! _' C2 S6 Y/ _3 v3 l6 W                .default_trigger = "default-on",
7 C" k! c; c  z: u        },
) I! A( ~' b+ Q) z* d        {$ i6 D, l$ Z! U8 ^' \9 Q
                .active_low = 0,
5 q. D5 ]" l# f3 B2 R                .gpio = DA850_USER_LED2,, ?0 X! d5 J0 y  h2 z( Q' k) U# G& ?
                .name = "user_led2",
0 S* a1 T" l& e0 [" ^+ e                .default_trigger = "default-on",  I8 k3 _) e9 J4 p2 q
        },, V) A: `% X! {4 j+ J# G7 g0 j* @2 h
        {
/ ?. p/ w1 L- }( m# B                .active_low = 0,
  I9 d+ k5 N. f) }2 t) T                .gpio = DA850_USER_LED3,9 s! D/ E# q! g; L8 G5 `6 Y3 E
                .name = "user_led3",
3 ^4 ?+ G; ?) D  l# x# G                .default_trigger = "default-on",  x; Y9 k9 v2 Q5 Q$ @4 w& D0 W
        },
+ j' I8 P( q( k/ _& m};; b9 d7 k' s" T0 Y" ]9 i

! Y  ~' S# l& d. W4 r0 X3 J+ U- {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 L  Y7 |- r' T4 [5 E
        .leds = da850_evm_tl_leds,1 I1 a5 d7 ]4 u  I5 {+ t
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 x7 B6 X* j3 N3 g$ m2 J$ ]
};  J1 \. J% Q1 h" R8 |5 A! B6 l* F

6 M5 H: d, T; d7 }) rstatic void led_dev_release(struct device *dev)" D: c4 k7 }: r( J5 q( K
{
. E/ B2 l* _  C1 g; m2 a};( M3 E4 N* D1 q# G4 t

7 k. A# O: G' _" K3 H) R  ?static struct platform_device da850_evm_tl_leds_device = {
3 U- |; C, p8 |! \. W        .name                = "leds-gpio",) {0 ~" h$ K' _) u1 P, {
        .id                = 1,
- @5 l# J- b5 c        .dev = {( ?5 I9 [$ j+ N" ^. X7 r: f
                .platform_data = &da850_evm_tl_leds_pdata,
& V3 W0 @. y. {: W                .release = led_dev_release,
) m9 ^$ V8 O& `2 U1 n6 v9 V        }
* D3 q& J2 ~9 G3 X};
6 {) Z/ ^% w* r8 K0 i# p4 B) ?, I$ K7 ]6 x; O
static int __init led_platform_init(void). c) t* {6 U9 u3 H5 [
{
. p% p: F9 y. j3 J1 ^( ^  o% \        int ret;& z3 P& i6 x+ t& A7 L$ N
#if 0/ ?* s6 A/ A: W3 U2 H1 ?$ C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  n' W5 W; h8 [. v( N- y4 B        if (ret)
7 T( ?% `, _! q" i: \  I0 k* Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- J' r) S, H8 v, h! F+ W                                "%d\n", ret);- m7 B" b0 Q7 O4 r  V# t  x, }% r
#endif9 h- W8 Z& _& l. \) o$ u
        ret = platform_device_register(&da850_evm_tl_leds_device);6 W3 j: y+ B! j: [- [. g
        if (ret)% M/ l6 Y( I& `% }4 s( C( t
                pr_warning("Could not register som GPIO expander LEDS");1 a* Z8 ]( h% d# H. |2 ^
        else* ~. @/ d" L& j2 I5 t
                printk(KERN_INFO "LED register sucessful!\n");
, V0 ?* Q1 t3 }% {/ P8 p/ k1 ?2 [, K: o' a, d
        return ret;
6 q3 V  o$ X$ @$ S}
2 k# n7 V  B; Q, e* k' U
6 i2 D. O2 a  S) {static void __exit led_platform_exit(void)
0 @6 o& t3 F$ K9 X5 L" z{4 l8 ^* W  a0 ?! |" u' }3 y
        platform_device_unregister(&da850_evm_tl_leds_device);
0 G0 F& D* Z/ c7 `+ `
2 G* D3 v7 D9 X, q4 l        printk(KERN_INFO "LED unregister!\n");, L, [' a2 G6 ^, d% i
}
! t) Z+ W" ^6 h  k9 c6 ]) }% o
! X) y) `" K6 X+ V4 w/ x+ Z4 F+ cmodule_init(led_platform_init);, z2 @6 Z$ y9 I" J; S
module_exit(led_platform_exit);/ R8 \) b# M. }# g% }5 p

" s1 H8 a7 D, f+ }' u! tMODULE_DESCRIPTION("Led platform driver");% s- s8 C3 @9 N% M% P3 i( w
MODULE_AUTHOR("Tronlong");
. E3 P8 M& Q2 b3 W& D# ZMODULE_LICENSE("GPL");
" n$ O+ a# i, M  d# k2 g: e
& j$ h1 Z6 ]' ]# M7 T% b* l3 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 00:20 , Processed in 0.040517 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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