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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ y. {* w5 P$ f# @; r5 h; T#include <linux/init.h>
4 i3 N$ u. |2 o0 t7 o8 j#include <linux/module.h>3 V0 v$ z8 v, s8 Q9 I
#include <linux/kernel.h>
' \# I! r4 o) S% [#include <linux/types.h># x0 m; h9 D  ~" M- q2 O6 D  @% y
#include <linux/gpio.h>$ C/ Z" `3 k: C: ?! _
#include <linux/leds.h>3 Q9 c9 ?+ j0 s  e
#include <linux/platform_device.h>  M% }, }; c8 T+ T6 g, f
& d2 b1 ]2 Z$ w" m+ ]
#include <asm/mach-types.h>7 L. `0 x7 [- k# T: m$ j8 v2 {' v) b
#include <asm/mach/arch.h>
$ J- S' }2 A4 G& {. I#include <mach/da8xx.h>4 ?; Z1 A- U, K3 D; F: r. |" |8 m' i
#include <mach/mux.h>
: _; O) f1 h1 d) N3 p. K  T* B/ m' h/ z7 L- W2 `4 V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% ^. v* ^9 B) e: S" A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" Q2 I# Z- ~. z( g& g, g; a+ H* j+ g
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 w- r/ G1 s6 W6 o. u5 c3 }0 z: r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! C- @  `- j' j; q8 V7 U0 o' R

7 B" D0 P0 v: |" d/* assign the tl som board LED-GPIOs*/8 j+ J  G; K( ^7 V& o- o
static const short da850_evm_tl_user_led_pins[] = {" V+ A* f/ d8 K
        /* These pins are definition at <mach/mux.h> file */
1 `# t/ n% Q- Y4 c6 k# `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# u6 x- X5 K4 K+ o  ~$ @! v2 T: b        -1
% d& Y# l/ R( n& N# t};" I% u4 p/ ?& n

3 m/ }+ E  [/ z7 p4 C1 vstatic struct gpio_led da850_evm_tl_leds[] = {
7 g; N; Q$ @% i% X        {
4 @. \2 c0 w% q* j7 K+ m                .active_low = 0,2 i& s3 `- I7 b! d  p
                .gpio = DA850_USER_LED0,4 J, z' X# n3 A5 e
                .name = "user_led0",
2 b6 f& A% a3 t5 F                .default_trigger = "default-on",% G0 f0 M6 m( M7 Z$ F! W2 A5 z! z
        },
- v& l; t2 ^- n- D+ S0 N9 V- t" `        {
2 r0 M( b! d6 ]3 ]* d) Y3 ^5 W                .active_low = 0,( a; ?' ?7 P( K
                .gpio = DA850_USER_LED1,8 Z. I% ^3 A6 c# d
                .name = "user_led1",
: N' R& U1 Z9 g3 }$ S                .default_trigger = "default-on",
) m' ]6 m$ b  L' V. V4 j+ v6 n' y        },' P2 [* S; m2 _7 W. Y
        {
2 l8 C  Y. A: F* N- X                .active_low = 0,
3 o1 g( P. F2 d  p( ^                .gpio = DA850_USER_LED2,
$ P( J) ~8 p& v( o                .name = "user_led2",
. ?+ y4 A3 S. z, s0 V3 t( K                .default_trigger = "default-on",0 U7 |9 O# s. P; Q$ F
        },
& V5 H, L* ]# j$ Q  b1 w2 ?8 v/ o        {
0 l2 ^/ U9 A0 I& `& |: i                .active_low = 0,
1 {- K: S7 v8 M: `% U: K8 D6 ~                .gpio = DA850_USER_LED3,0 ^+ x/ u" s6 L9 y1 d$ P
                .name = "user_led3"," l+ Y+ t) A0 q8 j0 w  P' X
                .default_trigger = "default-on",
. W6 G' d3 ^- ^; g+ S% z. W        },
0 B; H. n. h" e6 H* p6 v/ x, B};4 E; {0 j+ W2 Z3 L9 H6 X1 j6 d
5 N" {, h: ?4 c' H8 f( A8 V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 z. Y7 K1 v5 F7 i
        .leds = da850_evm_tl_leds,; H6 L$ o5 E+ Q  V, Q! c. D8 K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ N3 W! q  R0 I. C1 E" ^5 U2 U};
/ ~; a0 h" ~! A: g* ~$ @9 Q3 u; b- Y/ ^7 t8 X6 U( o
static void led_dev_release(struct device *dev)0 E: e2 r# M3 S: t9 a
{4 y1 O/ l& ^+ I2 P+ l+ H
};0 n% W+ n) W' ]6 T/ y3 `- q

4 X& n' y  X8 i& H4 Gstatic struct platform_device da850_evm_tl_leds_device = {# S# Y  c% K& r
        .name                = "leds-gpio",
1 N  k7 d4 u+ k* q, }3 L  }        .id                = 1,1 Q. C- n: @1 }
        .dev = {
2 Q  ^0 v: Q! a9 B3 o                .platform_data = &da850_evm_tl_leds_pdata,  b  X/ e& @3 f* V- b
                .release = led_dev_release,
$ ~% K3 m- t+ y2 b) }$ j        }
- j3 Z* G& m( R# S. x( S: W+ @};
+ i" j- D  a% d  g9 x$ z- c0 C* q# H2 T: `  _; D
static int __init led_platform_init(void)+ A1 L0 F! Q# f2 s  P5 ?& ?
{2 l5 {! K/ m0 Z* [( D+ Q% r
        int ret;
. @1 G: O& k6 y#if 0# G' c" S; G0 C. y7 \& K* r9 {' C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 P# u* s$ Z, w7 s        if (ret)
! K1 B4 {8 `. z* f. @' i3 b4 x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": z: O* n4 N% Q1 G' K
                                "%d\n", ret);
1 a# j7 F0 N+ U) Z# T6 f& v" Q#endif1 _2 F* y* ?9 a! j2 W5 v
        ret = platform_device_register(&da850_evm_tl_leds_device);% V& @2 `2 m; E0 @) o8 {8 \
        if (ret)
2 S5 s. B0 I! l5 {$ C0 P                pr_warning("Could not register som GPIO expander LEDS");
7 C/ c' X6 W* \0 D* T        else
4 n: l+ d( Y8 [5 a5 B                printk(KERN_INFO "LED register sucessful!\n");
) H  x5 g5 Y  Q: n6 L' h+ v6 p4 `/ ~* d8 n2 l+ l' g
        return ret;' k; a! E1 ?8 E' w9 A* J; |
}
# b* Q0 a# C& x& M- ?# M* \7 @, {- Y
static void __exit led_platform_exit(void)8 Q6 |- a. m) I- S
{
7 C' c' `. j$ ^, d% F$ s        platform_device_unregister(&da850_evm_tl_leds_device);4 E7 B4 R, A: \
0 Y0 C  ^9 v7 [3 c  {7 |
        printk(KERN_INFO "LED unregister!\n");& ?5 i6 u; \: _" H# u+ T
}4 s# d+ L! y; D/ f7 G
$ z1 S( Q* j; M0 d
module_init(led_platform_init);
. w9 K, i1 H: F" Vmodule_exit(led_platform_exit);
2 x+ O7 I. r0 w7 w& t. l& V1 U9 f5 Z: W5 o" d
MODULE_DESCRIPTION("Led platform driver");
0 X# j; a7 u' o0 j+ |MODULE_AUTHOR("Tronlong");: L: {+ g5 I# v3 h9 O$ ^: o
MODULE_LICENSE("GPL");: ?  b7 u" x" @# F
* C3 r( A2 a) x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 12:09 , Processed in 0.040176 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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