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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- b* |% t/ r4 f. O) M5 l3 [& i
#include <linux/init.h>% [8 y* u; v: V  [+ g2 d1 B
#include <linux/module.h>7 Y+ `* P) j8 r
#include <linux/kernel.h>4 E' c9 I+ T$ @* |, R/ M7 e
#include <linux/types.h>6 H. N8 F6 i+ l' p# q2 ~0 r" l
#include <linux/gpio.h>
! Q  L) _3 W, X- k+ p" _$ Y7 U#include <linux/leds.h>, \8 O# T# S/ T
#include <linux/platform_device.h>; f; e  I, e" m7 Z; l+ N0 k. g
/ T) i5 f" E7 |2 V
#include <asm/mach-types.h>. x4 Q0 ]. W' [: s, {& n
#include <asm/mach/arch.h>4 l' p  R1 t( U
#include <mach/da8xx.h>* a7 e% q! |1 H/ P* k# ^
#include <mach/mux.h>
9 i) M5 {& L) N+ @
3 _: N- T. F, l. U8 P  e0 q; o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. |; z! U$ C) c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 F( `1 j, g: [* U% p) d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ F( ], l! \  H# \* n& v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 ^- r: E# p7 [. K
0 Q4 {/ Q& ?+ Z9 n# C/ l+ M  @/* assign the tl som board LED-GPIOs*/; r1 b1 B8 q$ E
static const short da850_evm_tl_user_led_pins[] = {8 b$ k- w& A% m5 o, C
        /* These pins are definition at <mach/mux.h> file */
- E" X; T- P3 T! e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; Y; a, [$ Y6 T# ^5 \8 z: V
        -13 b2 e2 w+ W  @- Y( A4 f- s
};
) D" X" I) {& z' u( c% m+ V+ N7 T
6 J: m9 f- `$ s1 M$ y* k9 tstatic struct gpio_led da850_evm_tl_leds[] = {
& K7 K/ y9 ~' n        {
9 P2 e  L" T$ S, [7 H% j                .active_low = 0,7 }' ?7 a% i; o* }; f
                .gpio = DA850_USER_LED0,! Z4 h- {) R  |7 e3 E
                .name = "user_led0",
# k, N1 l3 X9 b8 S' ^% m2 e                .default_trigger = "default-on",
8 h( U) x5 C, u! E        },9 K; p' k# h/ E* w
        {
( E0 a( X& S% Z4 Y$ r                .active_low = 0,( M0 v& D/ C6 E- L" _9 _
                .gpio = DA850_USER_LED1,
7 A3 u7 z1 q  Z, c                .name = "user_led1",
5 G% e3 q7 V6 U# m# [                .default_trigger = "default-on",
) ]$ n2 C7 d6 w: T" o3 D5 G, R        },$ y/ N  D+ N9 B: P( V' u% g
        {" y! A9 S! ^7 J. [3 W2 J" k
                .active_low = 0,- ^1 e( [& J2 |. ^: n
                .gpio = DA850_USER_LED2,, P6 F, ?% f# R) w4 S. D" T
                .name = "user_led2",
& K* v7 P2 ?0 f                .default_trigger = "default-on",
1 C$ l4 \! E) _  V% }/ j        },
6 v0 B) y* s* e2 O7 _& I+ f        {8 N5 V9 H' z  K7 y0 R
                .active_low = 0,
+ u- L3 t( {/ t. D( o. k                .gpio = DA850_USER_LED3,5 ^" ~* x0 Y4 Z" R2 N: J
                .name = "user_led3",+ Q- P- A$ `" n
                .default_trigger = "default-on",
. W' e. V1 t/ b' q% }+ t        },7 n* F# ^: ^% F/ {0 C
};
9 ^3 O0 D& v, K; E
$ _7 ^! a8 G, f# O! g8 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( \: W" R) H" L% H  \4 h
        .leds = da850_evm_tl_leds,2 Z' Q$ h! ]3 J2 g6 [: Z5 S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: m& ?: |9 r! `: d  @+ ]4 L( M7 ~3 S
};
; J; p% V' \% M# P' U8 V" ^
/ b, d5 ?7 C9 E5 T2 astatic void led_dev_release(struct device *dev)! \7 i. T( ^' e. C( s0 J
{; l+ R. u3 j; p& t0 D) K
};9 B0 N! I: Q6 |* x

* p3 n" V; O" w/ g5 S  ~+ Pstatic struct platform_device da850_evm_tl_leds_device = {
) u+ B% Y8 ]* T6 J/ k9 p0 e$ @        .name                = "leds-gpio",0 t) m9 q8 B: y1 B' ~4 r8 Q
        .id                = 1,3 \7 C0 W+ |- a+ U- s0 q- ~- {
        .dev = {% s! z) h& }& G! l3 G; T
                .platform_data = &da850_evm_tl_leds_pdata,
  o6 v5 K$ O! e; g7 [- e                .release = led_dev_release,
4 }: X0 Q0 G/ X3 U  E        }# a- g  |* F( l" W
};
! O. p+ d% R4 W- g0 j) r
" J- J, [, B9 Xstatic int __init led_platform_init(void)
+ ]4 q; O! ]4 ?{
6 ~- N! z  i, E        int ret;1 C9 j3 A6 u5 n, c
#if 0$ ~- y: ^0 y0 ~: t$ h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 G# U! z1 ]. `; o6 w        if (ret)1 P5 k# k, Y) b4 ^+ `: f. k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' E  P) b' B: `8 s5 J8 _
                                "%d\n", ret);
1 ^3 C4 x! m9 ^) E" Q4 C# H#endif% Y2 ]# c: E. s3 ]; d" v( Y
        ret = platform_device_register(&da850_evm_tl_leds_device);- r, B9 a  Q$ b
        if (ret): X0 j5 N( j& W" M$ N% `
                pr_warning("Could not register som GPIO expander LEDS");
2 m! ^/ x! P, O0 K) S/ P        else
# e  f- U) @  k2 s* `: ~: i' n                printk(KERN_INFO "LED register sucessful!\n");8 p" A9 C2 ?- C% K
) y2 N4 g; I  f  O/ L
        return ret;% e1 C7 f' _4 K1 P2 v/ b! n
}
1 e4 e4 V, m: @: F
5 F. o0 _8 m  x/ `static void __exit led_platform_exit(void); E: u5 c, U% ~+ D5 S$ T1 W  B
{
* j- c' `1 `1 D7 c4 u        platform_device_unregister(&da850_evm_tl_leds_device);
6 K6 A* p, H' Z0 Y" N6 t1 |2 ^5 p' C# ?3 L8 H. E+ D% |
        printk(KERN_INFO "LED unregister!\n");( {& c) d+ n  G8 e: u3 g5 Z; ]( H
}
4 e7 t/ U+ M/ m2 U
3 |& P1 J& c6 m2 a2 h- \; A( L/ Qmodule_init(led_platform_init);- _9 e% ]* Y2 y- v5 U5 w
module_exit(led_platform_exit);' D. c; H& E( ]! A5 k" |# p
' `. g1 s) K4 `1 n6 P
MODULE_DESCRIPTION("Led platform driver");
, p6 z% F! c7 \% s/ x3 o3 dMODULE_AUTHOR("Tronlong");
& r' a. I9 H" tMODULE_LICENSE("GPL");; X& L  {) T8 [3 Z
3 A/ I. G/ [& v( m0 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 05:41 , Processed in 0.037941 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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