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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( c% B# g% R& ?, Y, r& O2 M#include <linux/init.h>% {; U9 h8 e" {$ o8 r
#include <linux/module.h>
' \+ d: ?0 [! v6 K#include <linux/kernel.h>
5 e0 a0 H8 W3 m1 B5 {) {  N#include <linux/types.h>  G+ s1 X) T0 ]' g2 t2 y
#include <linux/gpio.h>* d& E8 R" [( F! H$ M
#include <linux/leds.h>8 v4 I- f" S3 [* {
#include <linux/platform_device.h>8 r4 |6 v4 T  E7 Q& I7 {& p% f6 u
( K, ?$ N5 ^0 S; c
#include <asm/mach-types.h>
  \* l4 H8 Z, g! x5 z#include <asm/mach/arch.h>
( ?: C+ V; F6 m1 H/ [( g2 ^#include <mach/da8xx.h>
+ [1 O- y& a+ _3 ]( f) }#include <mach/mux.h>5 z- {5 \: ~+ D, S9 _
3 I7 S+ W- z  p) K) y6 ]; O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- A! h, e( j* q* k+ w1 H
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ i" @7 b1 w, E: h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 Q8 I( ^# W. r$ v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 O7 `1 R0 W  l. E7 z1 J, y
, e" w( K+ N9 Y$ r/* assign the tl som board LED-GPIOs*/3 D5 }; B- `& W  q* l
static const short da850_evm_tl_user_led_pins[] = {9 u+ z: E, I9 Q# j' K" b. C
        /* These pins are definition at <mach/mux.h> file */' `$ I( |0 \+ B% e9 v  K# ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 K/ U( Z: E" |$ O) Z, g
        -1
+ r. z# @" L3 F/ t" l. S1 l};- c+ x. Y7 S* I2 ^2 B0 G

9 @! ^6 w# E; G/ s7 hstatic struct gpio_led da850_evm_tl_leds[] = {+ v/ }+ s. d" c  B6 n) r: {
        {
3 x6 x9 A1 M" a& J                .active_low = 0,! W: J/ a# Y5 G4 X2 Z
                .gpio = DA850_USER_LED0,, _6 d6 b8 o5 y% A9 [0 [* [- l5 K
                .name = "user_led0",
- b& k5 [/ j2 i4 t0 U1 n" D                .default_trigger = "default-on",1 r1 D/ `; F* {5 E
        },
7 f" Z! S4 o' u        {
# X0 M( t7 e# q3 a! E+ ]                .active_low = 0,! \% U* @  `  G/ f# i/ X1 T8 {
                .gpio = DA850_USER_LED1," j7 h. y  N5 o0 M4 |& ]1 y
                .name = "user_led1",
% ^( Z  i  D% N1 c: |                .default_trigger = "default-on",
6 {- M) X6 O- K% S2 M        },  O  d; o5 r6 |/ l: Z
        {
( n+ {: J( M- }, Y% t                .active_low = 0,; a* Q* Y% i$ E: f3 E
                .gpio = DA850_USER_LED2,+ k6 C4 N. [/ \; }/ Y' d+ D( E6 q
                .name = "user_led2",
. X4 O0 q& G$ _  ^1 s% l5 ?2 W, D                .default_trigger = "default-on",- f/ |* h0 a. i
        },
5 Q2 n1 L6 n& P, ^        {% X" g% n% ^% M# {+ q) `& B& y  E
                .active_low = 0,
' c( u, y; R1 A: @6 g: X                .gpio = DA850_USER_LED3,
; y/ I& m+ }' |! h                .name = "user_led3",3 M1 v- D/ M4 X; k7 q  N& y6 U/ g/ i
                .default_trigger = "default-on",4 `5 Q8 C( O/ W5 u
        },
+ z+ j) Y" o1 J" v, u};
% L( @; K2 y+ z7 `4 b5 _! ~3 E# l1 v3 L1 I( Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 s0 b- K5 k% B7 c
        .leds = da850_evm_tl_leds,
  s7 [7 R, T6 U9 q# C) k  R$ w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# d) S% N* q1 l5 \$ U* i4 ?* N
};' Q4 j& f1 o7 T$ ~& i1 }3 Y
* N7 q  |8 @6 _: h+ G* R& o
static void led_dev_release(struct device *dev)
0 _/ i8 d( e, F: L8 S' r% a{
: g; s6 f2 r0 ]};
& J2 ]# G" N1 H7 h& N  H
4 _2 Q8 t& V; X' y0 Lstatic struct platform_device da850_evm_tl_leds_device = {
, Y/ _) A/ I* A5 V9 ~4 c1 w* L! u3 g% P        .name                = "leds-gpio",$ S% }9 ~/ m0 z
        .id                = 1,
7 r% b( P: m. N# q# P/ _        .dev = {" z2 ^( _/ F0 o+ v& x( h& p2 b
                .platform_data = &da850_evm_tl_leds_pdata,5 P( \: j# E2 Q6 h- ?/ l* |6 a% f
                .release = led_dev_release,1 j' p, E$ L" _; J% _) Q
        }$ e, F/ b4 r6 Q# G5 e5 P) F
};( {" L+ `' N. ~. I7 i1 p! D
5 g+ X, }: P9 l! T* [2 a0 Q2 O' J( h8 `
static int __init led_platform_init(void)
0 M8 M/ r, P8 p& S$ j3 O8 R, K{
3 y# \8 x- ?9 R$ \' `& z# ?* _6 b9 m        int ret;
" x6 O8 N6 _0 g$ p( I#if 0* w" `0 j8 w/ w; {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: p. v# x/ e. G3 Q5 F$ w9 q7 x
        if (ret)
" y5 \3 d4 C1 j8 X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 b/ S1 B8 o" T+ l7 x' E                                "%d\n", ret);
1 s  i8 J0 o- E, K#endif+ c. g. }+ H" V% J
        ret = platform_device_register(&da850_evm_tl_leds_device);6 N8 T* x: X2 \& A/ q3 J" `+ g9 n
        if (ret); g  [' ~+ X7 m. I: l7 v1 Q/ [
                pr_warning("Could not register som GPIO expander LEDS");
- N& n1 T" l% O  ]( A) `1 z5 M        else! E' m) U8 o0 e' y. }6 }4 V. k
                printk(KERN_INFO "LED register sucessful!\n");
9 m  ]6 V/ ?9 g' Y3 D: i/ a2 Z. `0 [- N) P3 K/ x
        return ret;
" H; D! A2 c4 S+ d}, [+ F4 \  o( E5 N$ D6 C5 B

  Z7 P1 ^* m% Vstatic void __exit led_platform_exit(void)* c4 A" K8 R% f" H
{# y5 J- U& l: C6 S6 ?$ p% N
        platform_device_unregister(&da850_evm_tl_leds_device);* X+ O; W3 Y& Y) `
/ e& j& C" Z; v3 D- _
        printk(KERN_INFO "LED unregister!\n");$ \4 ^  f& O3 E, Q0 N! h
}
9 c, `) N! K8 C1 S9 w5 o' C3 d$ r5 U3 U2 T
module_init(led_platform_init);8 ?# u2 t& Q$ }
module_exit(led_platform_exit);
) j8 B* J+ f/ @/ N1 C6 E
6 D7 ]4 F: H- \MODULE_DESCRIPTION("Led platform driver");
  Y# B" M8 a! c8 r- g% S6 R) gMODULE_AUTHOR("Tronlong");
6 \+ P$ D! u% G7 LMODULE_LICENSE("GPL");
! m5 z. [8 r# g3 h8 G- x* ^! \) h. u8 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 02:09 , Processed in 0.040922 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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