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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; e  T: B2 q1 S+ q" z#include <linux/init.h>
1 s# C, {6 g0 n#include <linux/module.h>* |% D4 H! }2 r+ l
#include <linux/kernel.h>, t8 j  [! d) Z
#include <linux/types.h>
9 L) M: Q3 B% }: U0 m  r#include <linux/gpio.h>* C# b. B' N1 f9 z  g
#include <linux/leds.h>
$ z/ j7 _! C5 a" E#include <linux/platform_device.h>
3 G: X7 k5 z8 M
. O6 K+ r  f( w: q* \5 L#include <asm/mach-types.h>' v) z, G& d" n: v6 }
#include <asm/mach/arch.h>4 N' h2 D; m% w" G, p* G6 n
#include <mach/da8xx.h>% q6 p1 H& U* K
#include <mach/mux.h>
: t  U/ E& E$ V! V6 \& f# L- T
& j3 ^) F+ g& |+ j2 g( g) c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% I! N  e8 |3 Y% S* R- T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! n2 Y+ i: Q* H! u) R2 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# c( u3 x* O& I; @#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 g- a/ H, X0 L0 S6 U% }% W; ?! Y3 ]2 y) ^$ ^8 v3 F5 d
/* assign the tl som board LED-GPIOs*/
% m+ {! S! |7 ~8 c5 Sstatic const short da850_evm_tl_user_led_pins[] = {( N, S* Y( A9 @7 M1 z: L  u5 _# _
        /* These pins are definition at <mach/mux.h> file */
$ Z% X; Q3 ^: M, o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 V# I  \, c! a4 `. ^* H        -1
/ t$ c, P6 Q1 Z1 _/ }. h0 E0 H/ R};/ U" Z) t2 e2 T2 m1 j

, H5 ~: }' \5 Gstatic struct gpio_led da850_evm_tl_leds[] = {
% v  I- r$ ~# e0 P, q( y5 V        {' t5 d6 N8 V: |1 `/ v4 \" e
                .active_low = 0,
) n: j/ s' J# H* u  x, L. [                .gpio = DA850_USER_LED0,+ Y; ^# c2 j. h) h; c  ^3 O1 Q2 T
                .name = "user_led0",) p/ S+ l; G3 ?+ N+ H
                .default_trigger = "default-on",
1 z/ g# ^# `! h9 ?: f7 n2 W        },4 [+ @% a9 v1 b1 w+ M4 C- H* M
        {; c2 B& U, V: M. y' H
                .active_low = 0,( c: Q; X8 C: c9 @7 }/ n6 U- W- g
                .gpio = DA850_USER_LED1,! Y  ]# N/ Y2 \8 O. u& _' m6 q
                .name = "user_led1",
& K2 {3 m$ n( Q0 `0 @( N2 v, P                .default_trigger = "default-on",
% \7 Y& c$ x! @7 {' L        },
- L5 W" A- s5 P6 @( x, J        {
) k6 E- M1 A+ q                .active_low = 0,8 ?1 u9 Q/ Z  y) @
                .gpio = DA850_USER_LED2,* j7 q5 p8 R; g' i1 W
                .name = "user_led2",; F. i, _% p  ^+ v
                .default_trigger = "default-on"," v  \6 ]2 E9 B9 N" c* z
        },' ^  |* a0 }1 n
        {
7 L. j3 a) [& ]7 z6 d3 Y                .active_low = 0,, z1 Y$ W! W2 V- f& D/ |5 \& P* r
                .gpio = DA850_USER_LED3,1 o; @! B: A& b! f6 b
                .name = "user_led3",& e5 Y! {: q# l( }$ a/ x
                .default_trigger = "default-on",; }* m% z' o( p! Z$ P6 c2 v& T, e
        },% \: T  ?) R9 ]% `/ \0 e; |
};) Q6 ~4 e& p5 y# I) t( {. d7 @
/ V( s7 e' ]) o+ S# g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, `( s& T5 g2 s0 g& E1 z        .leds = da850_evm_tl_leds,
  D! T1 C& X  f6 K- M, ~3 o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; \, X$ c$ z' N0 |% O: t: x- m
};
0 A. E) J4 Z) [) p' W( t; O* S3 s, x4 I! ~4 Z0 k' e* n* r# F
static void led_dev_release(struct device *dev)
' g! o/ t; C- [{: ]& o4 }; l5 n0 |5 r/ U
};
9 ~. Z, ]" u2 m% {; t8 y& K5 ]) F3 ^: P6 l+ c
static struct platform_device da850_evm_tl_leds_device = {- A% m7 G, \7 G4 O( E' j( G) d0 o
        .name                = "leds-gpio",
/ A0 ?( }6 S: K        .id                = 1,
& n6 K. s: |+ Q9 j1 @        .dev = {
/ J! Q$ c8 }) U8 {7 t; P# W                .platform_data = &da850_evm_tl_leds_pdata,
% y2 P$ [5 c9 b+ e$ K1 ~" s8 O6 W                .release = led_dev_release,' P' v+ Q  h' H$ }" X
        }
' D+ T- l' T4 f4 P9 A! P};
- S7 b" l- w  L! x0 Z. m( {. k: I( q) u5 [' P2 j3 e1 X
static int __init led_platform_init(void)! S6 Q/ P" T" P$ O% k- N9 e
{
! m' P* l$ g- c' c6 W* ]2 h& f        int ret;
+ \+ X0 S; G* H: f#if 0
# ~, e6 d1 I  `- ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ Z4 t# e0 m) u
        if (ret)
. `4 t3 V9 f" t/ R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' b! E6 H, m( ~+ B5 U: o
                                "%d\n", ret);" W6 M4 ]5 S+ v7 w$ L$ x5 l
#endif% T3 ~% y" t9 @6 ^" ~
        ret = platform_device_register(&da850_evm_tl_leds_device);7 G3 F: j) O: I  U2 r% ]: f
        if (ret)$ ^. ^( J5 O5 A5 |" f  k& b
                pr_warning("Could not register som GPIO expander LEDS");4 P" F% u+ \4 d* z; y
        else1 g6 l& B& b/ T! z: J9 y% K  |/ Q
                printk(KERN_INFO "LED register sucessful!\n");' K- d& t5 F+ B
& Y4 w$ f8 G1 v
        return ret;. Z! I, X5 D5 [0 |
}
8 p2 d; n1 H+ h
: Q, w' P8 S+ D/ }static void __exit led_platform_exit(void)
# q$ I6 a& N( l{% p" R$ m$ `9 j1 k! A6 b
        platform_device_unregister(&da850_evm_tl_leds_device);
8 ^' T" H5 P0 d& k% U: d+ h) p( p$ t7 I$ j0 W
        printk(KERN_INFO "LED unregister!\n");. M( L) G8 |: z: k
}
5 }) {5 N6 u2 @/ [9 G2 h# Y% e* G/ k- v9 s% q. p! y
module_init(led_platform_init);
; }: |0 S, w0 P6 a2 Hmodule_exit(led_platform_exit);
/ ]. K" `0 ]0 Q9 N3 A$ I9 C* p2 Q+ u: q6 j& A: A5 T
MODULE_DESCRIPTION("Led platform driver");
) o& W- }6 O, `. |+ E( y+ wMODULE_AUTHOR("Tronlong");
: D* r. z  ~: ^7 ?# ~' E3 ^6 T& {1 wMODULE_LICENSE("GPL");
' X; L1 r2 J" J6 Z' Z- {+ V5 U9 o# h/ F0 t3 l# [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-7 14:39 , Processed in 0.059903 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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