程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ I, c+ E' r! b, q9 i9 u. M#include <linux/init.h>
5 U1 o+ z7 R0 v1 p" C, v$ [#include <linux/module.h>
- c, S. j7 Q; ~#include <linux/kernel.h>3 p8 a; k9 W& B
#include <linux/types.h>% c: w! h: G" @
#include <linux/gpio.h>3 c: ?' d' C7 A- W  g; g/ f
#include <linux/leds.h>! F1 x* S6 D6 D9 k# O0 E
#include <linux/platform_device.h>0 [" m$ H% s; p) y& i% |1 J2 D

/ n, K  a6 ?/ f4 ]#include <asm/mach-types.h>
# o6 u% k: \) u) H#include <asm/mach/arch.h>
- M' g" a- N+ E  q+ v' h4 V* {#include <mach/da8xx.h>
/ Y, S  J1 q+ r' F7 m, _: ?6 o#include <mach/mux.h>9 p. K$ o6 g$ X5 x; x
% O9 Q4 y' B) q5 A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' r* z3 A* B6 m0 a0 I0 E# @
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- Z  O2 i' ~: h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! C$ M# b$ c+ N$ V2 u# K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 Y" L0 n+ [0 s9 F& k+ ]
8 U/ ^- e5 c! Z0 R9 {/ h2 ?; N7 d
/* assign the tl som board LED-GPIOs*/- @; d- E/ N$ G1 d9 j. F! l; m9 W
static const short da850_evm_tl_user_led_pins[] = {% C, N& K0 N# j) U& p
        /* These pins are definition at <mach/mux.h> file */+ B8 i% Z! V  m* O% w% W2 d: [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  Y: t: S9 E' V) r4 b
        -1
3 z; V1 \3 q; u  d  M3 N};
$ e+ ?' S8 ~5 K/ ?
7 B* c( U- M- g2 I" x: ystatic struct gpio_led da850_evm_tl_leds[] = {
. h( X& C! B% z  t; R& ]* X0 q        {4 f- q2 L- t8 }1 p+ @  m" t
                .active_low = 0,
/ z, w' `. h# Y+ r8 U                .gpio = DA850_USER_LED0,
1 w' ^! g$ }1 P& ?& l- Z0 P                .name = "user_led0"," a2 L$ _2 [9 K  B- H# U! C+ V
                .default_trigger = "default-on",/ ~* }# H3 u5 z
        },
' Z# {4 N+ }. j& h! E        {! x" i9 C6 M$ ]1 o
                .active_low = 0,
( L- b6 q+ M$ u( D+ l6 \                .gpio = DA850_USER_LED1,+ I+ h9 `6 o* X9 q4 z/ V
                .name = "user_led1",
  ?7 `0 Z2 u8 Y; L' n                .default_trigger = "default-on",$ `: q$ I( F" _  t  p
        },5 H* \+ y* X1 b1 C  Q
        {$ d' ?1 _. t- o2 [: Y" |
                .active_low = 0,
: o+ c2 d$ o/ F9 B! K* r                .gpio = DA850_USER_LED2," ]- i3 |% _8 E% X2 _
                .name = "user_led2",
, W, X2 r) H( r/ [* p, G                .default_trigger = "default-on",8 i" _1 [) ~  k8 w, m
        },
1 N; m* c) K. l0 L6 K        {. ?3 S. D( p' p  M2 g
                .active_low = 0,
1 J1 k0 q2 u- x+ ~5 T% V                .gpio = DA850_USER_LED3,
; D2 j& t+ O0 [                .name = "user_led3",# P! w# x1 ^) P; o+ H
                .default_trigger = "default-on",9 F4 O+ r) x# n# U2 p8 q" e
        },
8 C7 o# `9 w- t  L};! e; {+ d, Y! F+ m( N
  _' a- I) Q* ~% f& A4 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 t% t: ^+ F; `4 j! b* u! B
        .leds = da850_evm_tl_leds,
7 F5 k5 o+ ]' q# o* }" g, F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% `7 V! }. @* g& {* B
};; @: w2 _& L3 Z  D4 Y

! k4 `0 F  M! R! [0 d7 h+ k/ kstatic void led_dev_release(struct device *dev), ]* H7 a6 K) l- N' e
{: Z" z" J: `2 ~, f+ E
};( H; w3 Z2 b7 w6 d- ]$ \

( k2 x  N) t* r; X+ C/ u9 F6 Fstatic struct platform_device da850_evm_tl_leds_device = {% \: A3 r- J) ]4 b. \
        .name                = "leds-gpio",6 k: @! R- w7 [: @$ M! k
        .id                = 1,3 P$ L5 D- D7 Q1 X) O2 m# m& \
        .dev = {4 ~* {* l; Q- }, x
                .platform_data = &da850_evm_tl_leds_pdata,
  o1 b! o$ `( C. Y' F* L                .release = led_dev_release,& J8 T0 \/ f# M7 S. d( w
        }4 v+ T! w4 W$ I" l) [
};
  Z3 e0 e7 v" W& A9 k9 y& t  k
1 |0 Z2 B: \& |2 \static int __init led_platform_init(void)
" @1 {8 m  t5 Y{
! O$ Y* o  g8 p1 l2 x        int ret;( a/ T* w% Q' A0 \6 Z3 B0 C3 {; ^
#if 0! ^' o, T. j( I- C/ c% O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" T/ r% C3 G, N5 b
        if (ret), ?/ `8 V: s6 F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% B$ w; t4 X  G
                                "%d\n", ret);
0 z; |( v! a0 M# ?. V( W#endif
3 {& ]' A; W( m& G$ n3 g  o' N+ w8 q' C        ret = platform_device_register(&da850_evm_tl_leds_device);
+ {3 c' r  |1 H3 \        if (ret)6 M$ o  ]# ]* k2 T6 I; o
                pr_warning("Could not register som GPIO expander LEDS");! `& x, K: Q! ?0 H* z! e
        else' e2 }. x# E4 G( P* f
                printk(KERN_INFO "LED register sucessful!\n");7 G; X+ X  v' C

& j6 i3 t# Z+ S3 o. a        return ret;
" w/ V: ^: s+ S}# g5 y; w' a9 N1 e! n4 G! U

, B4 C, m  ~/ ~5 tstatic void __exit led_platform_exit(void)
* K2 ~  _5 T! n/ \" Y6 S7 E4 O% j{
. o4 N5 z8 v: s( C        platform_device_unregister(&da850_evm_tl_leds_device);9 I0 ]; f" @4 F0 q: w/ N

3 r! r9 A4 a. |7 {- n! f, p        printk(KERN_INFO "LED unregister!\n");3 r( H$ f+ T0 B" \7 R
}
1 q- |& h) a. J9 L0 J1 k; Q* ?5 B- [! m' e, e8 h
module_init(led_platform_init);
; g: n) f8 R3 \6 Nmodule_exit(led_platform_exit);% e# k1 b8 r( F
# c9 R6 Z# T, h4 }
MODULE_DESCRIPTION("Led platform driver");
& l; l6 S. |8 ?  k* ?6 l% nMODULE_AUTHOR("Tronlong");
- ]5 w7 o: [- y! LMODULE_LICENSE("GPL");+ M" t: C6 |8 H1 B4 O: e
" D+ }. q3 y7 Y+ O/ n6 }* p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 22:34 , Processed in 0.038127 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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