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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. Y& x$ q! F8 c#include <linux/init.h>" [0 ?+ h9 k6 W( l
#include <linux/module.h>
/ d) G+ X; p: g' W#include <linux/kernel.h>
4 V5 y" O8 L. z#include <linux/types.h>
  v* L/ _: v% ]& O2 I2 ?) p#include <linux/gpio.h>
/ \& O6 H5 I+ y- o! X#include <linux/leds.h>
2 Q  ]. O) E( F#include <linux/platform_device.h>
1 i. J/ d3 x: w) ~
- n4 g2 M7 l7 k* c. Y# q8 I#include <asm/mach-types.h>7 f3 f% c/ Y. w+ h1 k; S$ j
#include <asm/mach/arch.h>6 d* k4 |9 X+ G# Y% m" ^; R3 b: M
#include <mach/da8xx.h>
* X% p) T9 ]+ Q: A& q#include <mach/mux.h>: ^. c- H- Q9 N2 G, D1 X3 f
8 m' N8 Z8 a: Z! p+ \7 j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ G1 I3 I6 F& N3 [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), \$ r( V- |9 m4 W+ |' p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), Q; \* q4 F( f# y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# x* H+ i6 S8 @. U# g9 c
6 j. M- J& k' R4 F/* assign the tl som board LED-GPIOs*/
' i) m6 Z) I* ^1 wstatic const short da850_evm_tl_user_led_pins[] = {
, Q9 o# x* F" Y) N* L; w9 u8 M: o2 v0 Q        /* These pins are definition at <mach/mux.h> file */
( i( o0 C* H$ S3 l; b; b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, h" y. P8 r# e2 M& c5 Y        -1
; h9 v& M8 Z, b8 U) D! K$ L# ^2 t0 W7 Y};* u' i: o" L7 T" ^( c
0 S0 o# |, v/ {! c+ N
static struct gpio_led da850_evm_tl_leds[] = {
, _: `; U" D9 p        {( w/ h% F5 r5 r% c" D) ^: G
                .active_low = 0,
$ R  I$ O4 P6 F. F5 W3 z" Q) M                .gpio = DA850_USER_LED0,
5 {4 _! C) D1 |) T+ y" I/ N$ }                .name = "user_led0",9 Z/ n6 D% j; \! Q4 W* i
                .default_trigger = "default-on",
# g- ?7 C2 k" x6 e$ H* C/ g        },# I3 v$ ~% R, t
        {
$ K' ^4 S0 d4 M; e  |1 y                .active_low = 0,, P; _- E! r1 L+ s" P: S" R
                .gpio = DA850_USER_LED1,/ f9 q8 w& _% G* i  E3 F
                .name = "user_led1",
" {4 o0 b6 l) J: l; v                .default_trigger = "default-on",
! q  P& S: u! v  Y: p+ v        },
8 d0 H( [- o7 ^$ ]0 ^        {7 Z7 [6 M! d$ |! s$ Z& K
                .active_low = 0,1 d  Z7 p( t( }+ g& P# n; M/ B
                .gpio = DA850_USER_LED2,. T( D/ T- O' Z4 |
                .name = "user_led2",
( F* k$ o& G! Q. ]! ]( r                .default_trigger = "default-on",, ]; _& e2 D! U6 g1 C
        },
1 ~0 b( `7 N( C/ ]" _        {
, L" @/ m- n8 j  ?- V                .active_low = 0,7 u* Q* M, y+ }/ i
                .gpio = DA850_USER_LED3,% l9 ^6 _# B! U
                .name = "user_led3",; ~9 `: C9 s4 a- e4 A3 n7 X$ k  h
                .default_trigger = "default-on",$ d$ a  P4 W8 w% r! @0 {# l0 ^
        },
0 z( G4 {  \) V};% m3 j, [- t$ u+ ]5 N

9 L, f5 A- l! ]* ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ T( f4 f. [" \" O6 r( F8 x; f        .leds = da850_evm_tl_leds,) p7 C7 j0 u3 f3 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 U' k/ p2 F$ @};  M* V2 C6 L/ T3 A( z

; K- h& c+ D& n: I5 |static void led_dev_release(struct device *dev)$ C0 v$ U8 J/ B# P* `& B' D: j
{% U& K# j( u) Z( O1 w' x! a
};. t, `1 J! J  r
5 O3 Q- \" |( Z) m" f
static struct platform_device da850_evm_tl_leds_device = {
+ [& Y" {$ h" j& R" C- e! u' v        .name                = "leds-gpio",: Z5 Y4 J* ?5 C. Z/ I9 S
        .id                = 1,
- Y3 q  Y0 x& i" z. ?9 P* C        .dev = {
3 f% `, X# B9 n" S1 v. K9 [                .platform_data = &da850_evm_tl_leds_pdata,( O: ?  }. E% h2 |: p! a
                .release = led_dev_release,
' R& J0 e& K7 Q! e        }; `6 z# w+ h$ E) ~9 O  \3 g' x: P
};
) F1 C$ l2 a# ~0 i3 }2 h! F# {2 t  ~2 J+ H
static int __init led_platform_init(void)2 b% o, H/ T6 E
{
' A  @2 j$ g( o7 t) J        int ret;- ?& R$ e$ n+ y% }
#if 0; R2 Y, W2 q9 w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 j0 C, W/ B/ t! }, m2 a
        if (ret)
& A: a9 K; M' b: o9 _5 A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( G- l  g+ R2 \6 M3 s- W  K# V                                "%d\n", ret);
; W) C* f4 I7 G: w- F5 c1 F7 o7 t#endif+ O# ^' n* O' P. S
        ret = platform_device_register(&da850_evm_tl_leds_device);
: a- K: e9 D2 A- Y8 e; w        if (ret)2 C. M' _& Q: U0 ~5 \) z# f0 \
                pr_warning("Could not register som GPIO expander LEDS");
' i2 H' V6 d) D  S  y        else
% m/ e& U7 w  x4 ?9 Q3 P7 q0 i5 q                printk(KERN_INFO "LED register sucessful!\n");! U) l( U0 s  k0 i5 v

* [1 @$ n- N& U        return ret;$ W" ?& q( [2 o
}5 n. b8 p- W  O3 z: G3 X- c
& V1 H- |$ s1 `) ~- o8 q, W" I
static void __exit led_platform_exit(void)
# ^3 ?! p7 w, s! o5 V4 o4 e# t{$ Z; R# l$ X' I$ F
        platform_device_unregister(&da850_evm_tl_leds_device);
3 k' u( V( `: L# O  z& d+ m$ Q
4 c9 f6 [: m% G        printk(KERN_INFO "LED unregister!\n");
7 y/ D( b$ Z1 f  X, a' T# X2 K}. P/ q$ `& `6 m0 S) x( ]6 i
, v! R/ k+ u( ]( g
module_init(led_platform_init);9 R, z, K: ?- P6 ]
module_exit(led_platform_exit);5 |3 p1 ~9 B1 k6 M

. z/ I3 o; J' wMODULE_DESCRIPTION("Led platform driver");
0 K* H% j- f& O7 GMODULE_AUTHOR("Tronlong");( z. Y9 R: y: }7 \* }
MODULE_LICENSE("GPL");
! T- E4 j( k' j2 Y/ u5 w2 B% N. r% o2 O- g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 01:42 , Processed in 0.042628 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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