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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 o3 A" K) |5 V$ }$ z" _! j% _
#include <linux/init.h>( G3 ~: k, J7 Z/ E
#include <linux/module.h>
, s$ ]* b( k7 w. ^) w3 l#include <linux/kernel.h>* r7 U9 G' [* `
#include <linux/types.h>5 ^5 Y5 s1 B  D0 C
#include <linux/gpio.h>
/ X7 F6 y5 V) k6 c* t$ y, M/ I#include <linux/leds.h>+ n& t, f* d* `, U0 N' [- v
#include <linux/platform_device.h>
" k" r2 D9 x) u% k
4 s6 b+ X# n& ?$ i" `; }1 y#include <asm/mach-types.h>
6 ~4 S$ ]& g/ k7 R; |1 s#include <asm/mach/arch.h>
! l4 T& a2 k$ o  m! x5 h#include <mach/da8xx.h>
0 j& Q* m7 k0 Q( H#include <mach/mux.h>8 t: h. S" K1 Q* s
9 `; b8 y' u. L# X/ G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. k4 T5 I! k7 ]1 u! G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ Y! \; J; P. j0 i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& _6 ^+ t# l% s9 u# G' ~  A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# X, `/ |. `( d( u
( n$ I4 l! d5 p8 ]: C
/* assign the tl som board LED-GPIOs*/
3 Q: M7 h, ~3 D: }# Q& G% wstatic const short da850_evm_tl_user_led_pins[] = {8 A' N! A/ z( s4 Z
        /* These pins are definition at <mach/mux.h> file */
, `/ y( x3 @+ [- M7 F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" b( C" B$ y6 b6 Y# h* R0 I        -1
2 X) X. Q6 @0 q# y- v/ T) u};
4 K, V; K7 e3 M- k3 h3 ~* i; @0 P7 h, _+ `7 ?- v. r9 d0 Y0 ?. d
static struct gpio_led da850_evm_tl_leds[] = {' v# {: m/ b6 d( n& P( e
        {
* }/ z! [  u( ^& V( b) u                .active_low = 0,5 X) X* s& i- f" \0 {3 a% Q* A
                .gpio = DA850_USER_LED0,
3 E/ }1 r9 R' o( |' a- L                .name = "user_led0",% r- |3 t# [0 f
                .default_trigger = "default-on",  Y& H" p+ A  j1 z) `7 |
        },
6 e5 T4 R) {# Y) ~+ E        {# `- T- x9 x2 h  h" `
                .active_low = 0,- ^, j$ _$ ~2 t$ m- a4 U  z
                .gpio = DA850_USER_LED1,3 H. F( k2 F7 Z# W" D6 a' S2 j
                .name = "user_led1",
. a5 G+ t9 M# }; k; X                .default_trigger = "default-on",2 F9 [$ O5 |6 V) E5 H2 M
        },
; l) \! y  N0 e" j' F. I5 F8 ~        {
8 v! T- `: Q% l/ H                .active_low = 0,: n/ T9 @% o$ L
                .gpio = DA850_USER_LED2,
9 m# [5 h9 h; ~5 h                .name = "user_led2",
# d* S- D4 N8 k) g; z  n% B) X                .default_trigger = "default-on",5 E1 J  }% k% {. i8 o- H
        },
$ j2 k$ U7 M2 [$ g: U1 H8 V9 @: q        {
+ [7 Z, k' e! B! ^/ K0 l* `& m* r                .active_low = 0,, x# @  e6 m) b4 e. e! ?
                .gpio = DA850_USER_LED3,4 P7 u$ |* c- r( U
                .name = "user_led3",- f2 {3 F, E+ K4 [$ o
                .default_trigger = "default-on",0 r( @: ^& t: N4 T' y5 `0 _1 N/ A. ^
        },& O/ y* P, f$ s% _5 k, s& x
};  g2 y' H& Z* c6 b' p% V* D' K
$ C: n. i2 B" s6 q8 j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% v0 g! B( C9 S
        .leds = da850_evm_tl_leds,
; P8 d0 \% T9 G2 b+ v% \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; k# G% {) o5 L
};4 k: o* O' f4 |( I' s! X: O

& ^. t1 P" K1 o0 |( cstatic void led_dev_release(struct device *dev)$ Q1 h& z3 Z4 b# C1 n$ H
{
/ i5 u6 ~( f) e1 d9 z# Q};
2 R6 W0 a2 W% c' I6 t5 {4 l1 a2 Z( A  A4 d" u8 G! A  E3 g9 E) ~% e
static struct platform_device da850_evm_tl_leds_device = {: ^% b4 E' `5 q" ]* O
        .name                = "leds-gpio",
+ d3 F$ Q; r+ o6 n        .id                = 1,0 `4 H" J' @/ w
        .dev = {
! r% i' \6 `9 o" s- o  o                .platform_data = &da850_evm_tl_leds_pdata,
. ^/ b% ^3 q$ ^% @                .release = led_dev_release,( R2 P5 a7 \5 V& Q
        }
' o+ ^$ A- L: N* ~2 E};
/ p9 D$ @0 J. a9 |" L( z+ M
5 d0 V# J! ]+ \- d& d7 X3 T8 }static int __init led_platform_init(void)+ ]) j% O# n6 D& D
{0 s; l0 B% E2 W9 ]: W' h2 {
        int ret;( E' b& W* s* t3 s/ t
#if 0
1 h+ f; _; {! X: N( A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: e' _7 }, Q" ]3 J/ d
        if (ret)$ x' q: f' I* Z& \- A! k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 J' j  I" |, q6 L2 Q1 x  c9 g
                                "%d\n", ret);# A9 ^4 Y( t2 @4 W$ R3 z
#endif# p+ X9 x) g$ g8 r2 L
        ret = platform_device_register(&da850_evm_tl_leds_device);
* h$ V/ K" i' k* x% \- X" J6 Z        if (ret)
2 F3 j- \6 N& l8 C# w                pr_warning("Could not register som GPIO expander LEDS");: P. P1 \9 U/ `
        else+ T: F1 Q, J8 K; Q$ b2 N3 m
                printk(KERN_INFO "LED register sucessful!\n");
: V$ o! I. T0 h/ ?4 E- u. P$ f6 r" ~. O% _+ B& I
        return ret;
: ?  q# o$ b/ ~, a}. n2 z7 ^% u* G! _) M, h) ?( J8 v
- x+ p. V& b6 S3 \; j1 u7 r% A
static void __exit led_platform_exit(void)
  a3 E+ y( F" }9 V: f1 ^: g  b{
+ P. L; G  C6 \; ]! ?7 I        platform_device_unregister(&da850_evm_tl_leds_device);
/ u0 s" l6 L; Z" _9 E+ Y" H  @6 q' R7 J. Z
        printk(KERN_INFO "LED unregister!\n");8 a' r" M* l, g/ n: j
}7 U: [: T4 a9 j! I

* s  m% O2 \' f. f3 _module_init(led_platform_init);: d2 b1 P( G" E3 I1 X% i& b; x
module_exit(led_platform_exit);9 O: Z: Y- k: L) j
+ l! Z+ l+ n5 c; k8 ~) ]* d3 Y: K
MODULE_DESCRIPTION("Led platform driver");# K. w% l3 |- \3 z5 E
MODULE_AUTHOR("Tronlong");
4 x3 @! i: [2 A+ r1 HMODULE_LICENSE("GPL");8 G' L: F) N+ ?

. C3 m; g1 r2 t- M& j8 z# F0 i2 X5 u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 01:45 , Processed in 0.048414 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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