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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  n8 o# y! Z# v- t% M; D% [% u
#include <linux/init.h>4 [. t8 t$ w+ |
#include <linux/module.h>3 M: x( R" b  L, v
#include <linux/kernel.h>+ z: Y/ `: g! _7 e% M
#include <linux/types.h>
+ r2 [& H/ c/ j: h5 x1 E" ~#include <linux/gpio.h>+ l! y$ K- C3 Y! Y9 J- F& {& j
#include <linux/leds.h>
* Z( g$ H+ {: m5 v9 u# S+ Q( l#include <linux/platform_device.h>7 F& ^, F/ C# M" Z

( P; h" a5 }9 R# D#include <asm/mach-types.h>
. K* {. ?- z1 s#include <asm/mach/arch.h>
  }% Y8 K8 ]$ s; d. G. l$ m6 ~#include <mach/da8xx.h>
7 v9 `, R% y' V0 n3 D#include <mach/mux.h>
! ?' @' j2 o/ @6 Q# |9 Y! F
* J5 W/ I8 R3 b8 ?/ r' t2 T# U/ s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ ?/ R3 H% Y  n; |* U#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* c* G( C9 D) _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! y  X1 L, Q6 U# {3 g3 f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* t- u! X# l3 ~  v; x- D3 ~5 L* O
" D# d& S$ z. ^3 u% S2 S$ i/* assign the tl som board LED-GPIOs*/
) _) i) Y& Q) E# L! s/ cstatic const short da850_evm_tl_user_led_pins[] = {( d9 \0 g  N3 `- T5 `) e- a/ ]
        /* These pins are definition at <mach/mux.h> file */: Y7 `; l0 q0 l+ Q, Y2 x3 M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ c0 w( j8 z2 s0 T9 t        -1  n' m0 w+ ^  L
};
; J& K" s7 @( I9 t$ g
1 M& [7 n& P, O9 V( \9 Y: Tstatic struct gpio_led da850_evm_tl_leds[] = {/ e: _( I5 z- J/ `' ?8 g1 e0 W: n
        {8 x* Z$ q9 R# c0 u! T0 F: h
                .active_low = 0,
% }; M$ Y# ?$ Y4 M0 b3 w, K                .gpio = DA850_USER_LED0,( X  S3 s: f9 L
                .name = "user_led0",& u% Z6 w# ]' W  ^$ d
                .default_trigger = "default-on",
# y7 D' S' k/ H2 R0 U        },; i) b' Q7 q$ u% d. k
        {. A/ ?; R  Z; u5 |6 g
                .active_low = 0,0 z' q8 E- M% Q# k% ]4 v
                .gpio = DA850_USER_LED1,
, M2 Y+ p/ N3 ]: k. Z                .name = "user_led1",
3 P" [6 B' B. Q! |# O% u/ t                .default_trigger = "default-on",
6 {) c" q$ W2 g7 V" o! \        },
, W- B4 C7 {" a6 E        {3 n" b& [- \7 c, U8 Y& E& A& v& o
                .active_low = 0,+ S9 ^2 o& B/ }- q5 K* R) }
                .gpio = DA850_USER_LED2,5 T3 J8 Z8 a% {0 @) y- |: @
                .name = "user_led2",. q$ v8 B+ z- w* [/ b. A- q* E
                .default_trigger = "default-on",
: u% [& K& Q5 ?4 W- g" p        },; L' \; t' D, p
        {9 ]# I6 a0 L- {- W; E5 U% T7 S- n
                .active_low = 0,
5 a) b, L+ j8 b6 p8 I                .gpio = DA850_USER_LED3,+ O5 L# R8 Y7 y  u
                .name = "user_led3",
4 P, F$ w  L% w+ [' C                .default_trigger = "default-on",
; c0 [& m/ O7 g! h" T; B, q, g        },$ J  A! z& I  ]# L& B
};
) y; f1 k5 T0 c9 ~, W  Y" v# @1 u( U' M. E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 C5 w1 w3 R9 h
        .leds = da850_evm_tl_leds,
* h& G: B. g0 s' m2 f& @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ r5 W: e3 e1 `};
4 W7 M7 `8 f0 V6 Z# m1 k  Q. R' S: @
static void led_dev_release(struct device *dev)
3 D1 X+ b+ Q) Z: G0 [0 |% N* i{
; e7 s# N- t" _( D, W};! k/ G' h- w/ v3 C# Q8 y$ h
4 z, `" B: d* m# e4 Q- d
static struct platform_device da850_evm_tl_leds_device = {: g% R, J; B7 j! b/ B! f
        .name                = "leds-gpio",: `7 @# h% [1 {  j9 g
        .id                = 1,
7 \! J1 F. l0 w        .dev = {8 d( B# ]# o: e( g" L; e, `
                .platform_data = &da850_evm_tl_leds_pdata,
. k3 C1 G) o; K$ I                .release = led_dev_release,4 E5 w( Z9 s9 y: b
        }2 u* Q: J$ K  C* b" i( m! B3 U
};0 B% F* ?2 \" Z' N0 i

8 V( z$ h2 C1 J" L, m( \2 ~static int __init led_platform_init(void)
0 \0 p6 P/ v; k6 I" p1 d: ~  |$ n{
8 z$ r" J0 L1 t- p" V" ~# g        int ret;
5 z( S- R8 A1 Y& s" C#if 0! C. r' b' r7 T/ Y+ G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' C5 p9 X( J3 R: ~! v+ z( ~( p& O        if (ret)
3 q8 r# V6 Q3 s0 u2 x, r0 U; ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 C" V1 K* i( ~+ U                                "%d\n", ret);
! V% v; r: {2 @& E: }6 h! }#endif
6 T2 c  D* @& A        ret = platform_device_register(&da850_evm_tl_leds_device);. k$ l: Z/ y9 _# _# \
        if (ret)
7 A8 e+ I7 G$ a$ ~& L- h2 S, x- {                pr_warning("Could not register som GPIO expander LEDS");, ^( N/ k2 c. b2 z7 O
        else
7 k: Y# U5 P4 P: b; H                printk(KERN_INFO "LED register sucessful!\n");
9 k5 w2 I6 N: d8 c5 \0 h, d( N5 S" k# D, {! ~! b2 S
        return ret;
- T+ i! {1 N/ W% V}
5 G# y0 M# z; M# r; g5 i
% J0 F8 N* a# p( xstatic void __exit led_platform_exit(void); r) J+ G* E; }7 i5 \
{
$ k1 @: P: I7 g        platform_device_unregister(&da850_evm_tl_leds_device);0 h" u, Z5 [6 T8 }7 X

- `3 h6 O2 R6 N" o        printk(KERN_INFO "LED unregister!\n");
3 X3 H4 ~# r& e}" _5 C5 h% _- z( z
/ ~, F) s- \( S3 r% O$ A# o
module_init(led_platform_init);3 Y6 Q/ {# H; q' W
module_exit(led_platform_exit);
' s9 q  G* v& f# c$ ?5 x# f) Q+ ?% H! ?7 K& q  Z' P
MODULE_DESCRIPTION("Led platform driver");. R7 _# f/ `& y* x1 X3 x/ U
MODULE_AUTHOR("Tronlong");
, L! G  W' }9 u0 L; C0 a/ oMODULE_LICENSE("GPL");0 x: g5 q1 z5 A! c: b. {
/ l, ?' A, X5 Y3 f$ n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 06:40 , Processed in 0.038579 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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