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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' q/ ]6 ]3 E1 l% w#include <linux/init.h>! n5 x/ [" T: s; |; a
#include <linux/module.h>: r' x; ]& |$ y8 L
#include <linux/kernel.h>
! w, c; X9 ?2 B& u8 t#include <linux/types.h>
! l$ x: I, g) O#include <linux/gpio.h>! v" K3 t! e+ n/ f
#include <linux/leds.h>
3 J; E6 c) v3 k' O+ \#include <linux/platform_device.h>
$ ~& l) _7 k: }9 `: O8 v* I1 V* a' C6 Z4 O9 e
#include <asm/mach-types.h>" B6 D& h- Q1 a/ y5 y: Z) E+ G
#include <asm/mach/arch.h>
0 F3 A. S5 u4 j#include <mach/da8xx.h>
& t- n! L+ D1 f4 l$ `#include <mach/mux.h>& J: k6 ~- y/ f& M6 c2 J9 J% |
% ^% \$ O6 r% A7 @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- j* G8 E% \) L$ j& U) D2 `0 d3 ^3 l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& E- `8 d8 B0 J- Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( ^7 j2 g  b7 s! W  i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& u  \# k1 c# e
( b! P8 I" q6 h: Z/ o/* assign the tl som board LED-GPIOs*/
) [8 |. L- ?! A+ Z2 J7 j$ z4 A, Kstatic const short da850_evm_tl_user_led_pins[] = {
' s/ c5 N: Y" l; F8 O! N3 u        /* These pins are definition at <mach/mux.h> file */
9 [5 ]+ L9 n% Q! N! m3 Y5 ~8 I# w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 g' [, ]) Z; p) L% Q: z9 d" d
        -1
& e! |) e$ Q# N" H6 s};& h0 l0 ~' @1 z/ `4 N

& R) k, h$ n3 b2 ~static struct gpio_led da850_evm_tl_leds[] = {
/ u. q; v0 V# w' n9 b* r        {
' @. [# ]/ X  y% D; ?0 A                .active_low = 0,/ C! z: B5 l9 l" W" @6 p/ h+ v3 U
                .gpio = DA850_USER_LED0,
( X% o! Y' m( `                .name = "user_led0",
: u* A: f+ u  R4 Y# g3 O                .default_trigger = "default-on",4 e$ }6 J! D0 N8 J1 Z# ~/ F
        },
* g4 S0 d4 @1 ~9 W6 M. z        {# R8 _& i6 w; |4 [
                .active_low = 0," v2 C& v+ H6 @) g  p
                .gpio = DA850_USER_LED1,
! D0 M5 L" H( Q, s7 U                .name = "user_led1",8 g& C6 s/ f6 Q" U
                .default_trigger = "default-on",* l; i6 E% a0 J0 G
        },
/ y6 n$ ?2 N1 S$ ]9 a+ d+ N& x        {; S& M& S5 B3 A4 A
                .active_low = 0,
1 o% Y5 ~% e. P- O3 M& W6 @                .gpio = DA850_USER_LED2,0 B5 G) z/ w* t* a6 m
                .name = "user_led2",, Z# a" q" R2 Z' [8 Q8 y
                .default_trigger = "default-on",6 w8 Y1 p4 s3 R5 I( x0 G
        },1 s& z& _, m, `/ I: q
        {6 |) n9 a8 p" \
                .active_low = 0,
. J* i: F9 \% }# m3 {6 G" U7 Y                .gpio = DA850_USER_LED3,0 R7 l. @8 `- K# N' a" ?3 o! M
                .name = "user_led3",; k+ a5 c" Q9 T6 ^8 }8 v- r6 A
                .default_trigger = "default-on",5 s( ]6 m4 f9 b8 ]2 E, e
        },
: X9 q: L  j0 Z3 w% n) ^" B8 U* s- |. p};
) ?7 y# c( B6 X& E, u" j0 O( A
$ j2 W- `/ T0 N, G. gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 R2 B9 F2 K1 C; y" {; K/ k        .leds = da850_evm_tl_leds,2 Z, R2 R1 v6 N7 ]9 p7 d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," N( ]  z8 O- l. i( _
};6 H2 a5 O, ~) q3 v% u

$ u4 T4 G: J1 L# t6 f3 qstatic void led_dev_release(struct device *dev); ?) `) N1 d+ B3 a- [5 L
{
4 X; E- O' P, Z5 A};  W  ?' [# m5 x) w4 r' K: ^
3 k) C( K2 S9 u3 r% K: o8 R
static struct platform_device da850_evm_tl_leds_device = {7 U: ~4 b, P% }* @* T6 w
        .name                = "leds-gpio",
2 y$ Z& k* a! Y; ]$ o. N: d* \1 ?1 X        .id                = 1,- B; U; K0 R/ s
        .dev = {% R. D8 p1 U1 t8 H$ w
                .platform_data = &da850_evm_tl_leds_pdata,% A3 g# y  S" y3 |
                .release = led_dev_release,
# x/ j0 v$ T" g5 f        }4 E( {  k& e3 `! P+ i
};
( w$ u- N! m: G: @# D3 C2 A* \
, r. y0 p  _1 M% H( Y9 bstatic int __init led_platform_init(void)8 P8 s3 r* [7 g+ B4 Y$ E( w" Q
{
9 |' B! M2 s3 @6 t        int ret;0 P& Z7 ~$ e& m
#if 0
( L+ U0 G) V! d* [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: N/ O' u' o* k# u        if (ret)% {! [( e  _" D2 W6 a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 m1 F% X; ]3 [. [. F                                "%d\n", ret);
2 }* o1 v" c0 D, u% d6 C#endif$ E( f1 ?2 G, {1 B$ H
        ret = platform_device_register(&da850_evm_tl_leds_device);5 o5 r' G2 h9 K% h- {
        if (ret), ]2 F! Y( ]8 }" N% g5 u+ ~+ t  R/ M
                pr_warning("Could not register som GPIO expander LEDS");
/ U  B# Y) i+ j- i7 w7 J        else: s# f* ]/ y$ _, f' B; b
                printk(KERN_INFO "LED register sucessful!\n");
4 D7 K* C; M. J5 f) s0 C" o  |! k* D4 b2 M9 W
        return ret;5 u6 b4 p" m) ^- b; ]% {
}' F) ]+ N3 x" U* A' W7 m( Y

6 e' i2 b' z7 t' s8 Dstatic void __exit led_platform_exit(void)
2 F. `8 @# B2 _% B4 @{2 ~: E7 N& W4 ^/ p) p
        platform_device_unregister(&da850_evm_tl_leds_device);
8 h4 e% _7 d; I- V% ]5 b* G
) U! K, D$ _6 B- }, s/ g        printk(KERN_INFO "LED unregister!\n");8 w2 l7 W3 d2 m" I/ p
}) t$ N, R1 g" y5 B1 U, r  ^' z
" Y2 a$ S0 ?4 L7 J
module_init(led_platform_init);
0 q5 {! c6 |# q" ~9 mmodule_exit(led_platform_exit);& c( f2 O7 ~5 _4 t) P0 j; `

' x  X( N9 T3 e1 h) q$ TMODULE_DESCRIPTION("Led platform driver");; [& Y+ a8 Q  [
MODULE_AUTHOR("Tronlong");
! x$ S; s. ~) n. q; {8 m, bMODULE_LICENSE("GPL");
9 X$ |' ]/ _6 T4 D- Q& a* f
: q3 L. T6 y( x; Y/ r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 05:57 , Processed in 0.040842 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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