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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  U9 w* K" ]% W( c' W- R#include <linux/init.h>
+ E6 c5 z; {7 R, e6 N#include <linux/module.h>9 U- x& D$ E' V2 D) H
#include <linux/kernel.h>
# y8 k! w  Z  g$ R#include <linux/types.h># G, D9 M* y- ]5 k, g$ ~+ u  U
#include <linux/gpio.h>
" Y; b' w" K+ x( t- v#include <linux/leds.h>
/ V0 h% [2 f. e  D#include <linux/platform_device.h>8 J; B) e4 }& M

  l3 t( A' o6 j8 @, a5 Y#include <asm/mach-types.h>% Y, k5 ~4 i, i4 A* Y, v# D8 d
#include <asm/mach/arch.h>
; T. q# I" K; \7 v! w; o0 M' ]#include <mach/da8xx.h>
2 D' F! q1 i1 x1 z* F' ?#include <mach/mux.h>5 s! l" t: S( d6 }
2 K0 t$ u$ d. m- B1 ~% B( @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). r5 @9 U4 }% {0 E. c6 \' e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 D7 g/ n$ [; l. A0 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ M# t. ~9 U8 b* r5 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). |, a5 J/ [- g1 C2 W" R; I% {! ^& B
- m0 E9 b6 L- z8 A6 b5 w
/* assign the tl som board LED-GPIOs*/
3 [% q2 i1 g2 x5 d+ pstatic const short da850_evm_tl_user_led_pins[] = {
& |* Z1 ~9 @0 @/ A        /* These pins are definition at <mach/mux.h> file */
! B6 O) g* M, n+ y" x6 @( W5 L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; p1 R* f4 o# ?
        -1: K! W, c  Z3 Y0 {$ f5 Q
};
# w# v7 G. ?+ v8 t( I  _
& T- t, E2 L# v6 Y! Jstatic struct gpio_led da850_evm_tl_leds[] = {
6 p* T; f4 K+ Y: Q9 q) h        {
$ |. ]" y) B- ^" _  m2 q3 c' x                .active_low = 0,
$ p9 O  i, h7 U0 e2 x3 G                .gpio = DA850_USER_LED0,
* }6 e& ]9 h/ ]                .name = "user_led0",
1 D" h1 b3 f+ B  K% {                .default_trigger = "default-on",0 S5 V' k* n4 ]3 P
        },: G: p, U3 T& y  T  c
        {
8 V, _+ l  [4 K; A                .active_low = 0,
# S* l7 f9 g7 T0 q. R                .gpio = DA850_USER_LED1,
5 o% I; f4 D: q$ x- z6 t, r                .name = "user_led1",
: D' w) i2 O4 @, D                .default_trigger = "default-on",4 n  K' l# B2 T8 X* J! Z
        },- w/ O& O) F) i- s6 ~
        {
0 S+ z" ?8 Z6 K" x                .active_low = 0,! ]% x- F3 J( h4 v4 L1 R
                .gpio = DA850_USER_LED2,, w: `, ]3 g0 J) z$ P7 c; M
                .name = "user_led2",/ i, w7 v" L0 c- v
                .default_trigger = "default-on",6 P9 x7 G% B0 X9 a/ I+ U
        },( K9 L- G9 {5 o: v8 b0 \# f
        {- D0 Q; \2 _4 L# Q
                .active_low = 0,
  Q, J! o- {9 h) y) t                .gpio = DA850_USER_LED3,
! z, y: p: n6 y2 Q; X1 C                .name = "user_led3",
# D. O% \; Y; x7 p& f. n7 h9 f                .default_trigger = "default-on",
: ?6 Q( J3 K% i& e+ O        },
  F% ?; i2 l+ X1 ~, |};/ |" N- W9 V8 H, J1 t8 N( E
$ R5 _2 h" ]# e; C: @3 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 Z3 q6 J- A2 V% \4 L) {5 B        .leds = da850_evm_tl_leds,3 k. E1 t  R/ U5 F4 A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: z( V0 b. m" i" _4 B
};. J* l8 g6 m# b$ O+ Z( }

: S% G) X9 u! r/ M, Q: Lstatic void led_dev_release(struct device *dev)
3 |% N6 X* c6 Z2 O- r. c8 E1 R{
* S, e2 L9 {$ T. J1 `% Y};9 c$ L" Y) c8 M' X

# v. ?. w' R! l% O1 ystatic struct platform_device da850_evm_tl_leds_device = {
) }8 Q, f0 e/ G        .name                = "leds-gpio",1 D3 Z/ U$ n" i+ L6 a
        .id                = 1,
4 H7 ?5 G2 g" Z- L4 B* e        .dev = {+ o0 O- R: T# U
                .platform_data = &da850_evm_tl_leds_pdata,' J( \7 e& S/ Z" z4 n4 o
                .release = led_dev_release,
0 O* W: v, k7 m& Y* X9 ]# l4 d        }" Z- h' K3 L6 b$ o8 K& ]
};
9 s& k, w, T8 e3 ?! r$ X% l: A$ l5 J) B* W1 i4 i, }
static int __init led_platform_init(void)' ?* v: M0 d% F  o0 T
{: T& B8 Y) {; g" S
        int ret;
# e' v8 J; E( I6 h! o7 e2 E- [#if 0
2 o  O( I/ C# W! G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! h/ w- H6 `7 i8 D7 R
        if (ret)- B% h; |9 F2 v# Z$ V0 U& L/ f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" x% _/ K8 P: Z( P5 p
                                "%d\n", ret);6 s& r, m5 r6 _3 }9 n4 S' ]
#endif
' Q- x0 h! P1 S# x1 `# {        ret = platform_device_register(&da850_evm_tl_leds_device);
* n0 }( \, [" \5 c/ x/ a        if (ret)
* c  b& {+ q3 s. {9 Q                pr_warning("Could not register som GPIO expander LEDS");
: m. Q7 Y9 D/ E. E        else
2 Q) k* ?! |5 w& P5 u. i3 w! U                printk(KERN_INFO "LED register sucessful!\n");, f, u- U$ v3 I# {9 L& |) Y+ j

0 u( a* r% Y/ l' G( Z& v        return ret;
; ]8 R  b% {, B2 f( i. n) b" o}
0 S/ o+ ?: n8 _  M6 {" l) K
7 ?) G3 i5 t9 V( b2 \; cstatic void __exit led_platform_exit(void)
- }$ O; ~  C( j9 J9 ]0 p{8 r5 V' L& m$ f3 y
        platform_device_unregister(&da850_evm_tl_leds_device);. S( o& r" M$ ~0 [
5 h2 N: T0 k$ T9 P
        printk(KERN_INFO "LED unregister!\n");
5 I  y/ u! g5 Y8 N}6 [' D0 i9 u' c, d0 m
# M# }, z% I( r- F: p
module_init(led_platform_init);" I7 Z1 N" T4 E0 C# l
module_exit(led_platform_exit);. n& Q3 v% S3 k& X

! s8 S1 L5 _7 P( r* \MODULE_DESCRIPTION("Led platform driver");# q- d7 R3 N; A5 q  Q3 e/ R" G. z
MODULE_AUTHOR("Tronlong");: G9 B* K! i# e: ?
MODULE_LICENSE("GPL");
/ [7 _% U5 z1 t' m3 _& l) y7 u8 p. J3 ]! Y: X& F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-2 03:26 , Processed in 0.041342 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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