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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 W  [4 Q. [; K#include <linux/init.h>
9 l+ B+ l6 R2 R) ~: ]#include <linux/module.h>
3 m3 \. ~/ j7 e  \4 C' y) d#include <linux/kernel.h>2 Z: i- S8 O3 j# [0 q# Q
#include <linux/types.h>
9 l9 C$ b; N% \3 f1 Z+ m#include <linux/gpio.h>
) R0 I3 P% L& H#include <linux/leds.h>7 [& i) H0 M% Q2 }
#include <linux/platform_device.h>
% M* X" W$ [. F
, r9 \# K3 k. b+ B) J: p6 G#include <asm/mach-types.h>& ~6 h7 Q* D2 S
#include <asm/mach/arch.h>
4 G/ J$ Q9 i+ C# u  l+ u* y0 ]' P#include <mach/da8xx.h>
  ^  B1 `6 q1 m) ~! t#include <mach/mux.h>
) x* `, C: p: x) m1 v/ U
. k  A# Z! t; c8 @( b0 M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 x! @2 W; \' }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 T2 X, Z5 [, z( p" r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 l$ o0 c7 h% K; b1 a- g2 ^+ Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: B! X! O: U+ P" _& z, ]! A0 _% y' ^/ M0 r( O5 B' r2 p* Q+ M8 d
/* assign the tl som board LED-GPIOs*/. @$ K8 N- R' ^
static const short da850_evm_tl_user_led_pins[] = {
7 t7 u1 l+ _/ z7 s5 s: m4 M        /* These pins are definition at <mach/mux.h> file */
% y; x( A/ f0 M. S- D/ }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( S& |; ]- h% `; Q& N        -18 c; \5 d( l+ H
};. G# h5 n: B  G& x: c) T+ R+ d3 ^
: _/ b7 R+ l3 d
static struct gpio_led da850_evm_tl_leds[] = {
& j  H$ I' s8 n! O; ]        {" q* o  J' _# K. B
                .active_low = 0,8 j& g- W9 Q& [% @8 P6 E- n$ [
                .gpio = DA850_USER_LED0,, E# _2 ~0 E0 D% ]( J. Y( ~) R0 l
                .name = "user_led0",
6 s( e- z% P/ W" \- p                .default_trigger = "default-on",4 H4 C2 ^' s, c. H( u8 |$ v# r
        },
- r4 z5 l) [) V2 _; ~/ F        {
* o* o$ F+ m7 z, y8 o, ~, q/ b                .active_low = 0,
/ E3 o$ U# q8 `$ D: A0 N# B                .gpio = DA850_USER_LED1,, I: O+ R& K) v; S& [% C
                .name = "user_led1",. d( e0 |# Y' G  B- d( q
                .default_trigger = "default-on",
8 u6 r% x0 \* ~' A        },
8 w! v3 ~; p" y; u        {" {; [; n( m$ j/ N7 w
                .active_low = 0,
* n3 N/ K* q0 N- X                .gpio = DA850_USER_LED2,
& _4 L2 B' w# Z+ S                .name = "user_led2",
3 C% v( ]! U# j" e                .default_trigger = "default-on",% [  f0 ~6 E9 z9 n. o; u9 Q
        },
% }+ y" t! ~. ]2 Q4 b; i        {% Y9 M  R" Y/ e
                .active_low = 0,
3 e  c' x* D3 _+ t+ p) R( r6 i                .gpio = DA850_USER_LED3,
' q% }& k; j1 [& W3 d" F" I( f' H  M                .name = "user_led3",
* g$ C) J0 g0 t& `1 F  C                .default_trigger = "default-on",
) m. I9 r% |0 n  g0 S9 A, z        },
- \8 s. z- ]$ _" Y# T7 Z' l};! Q0 @6 @' Q! P/ Z
) \. d* S0 [- I* U/ ^, Y* r- [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 F6 n; [* X* V$ u, p4 l5 F# x' ?        .leds = da850_evm_tl_leds,: m- I' `% L8 t, w8 s8 k) r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, a9 R$ X; }! g6 F9 k/ ^4 c
};
9 Q7 `7 R! Y; S  _0 R9 m: F" {3 u/ l
static void led_dev_release(struct device *dev)
0 H5 Y* u, H6 z6 H, K{
6 _4 @8 T6 B0 B" I6 c- Q2 }};4 ]8 H* ~9 n& f2 }5 J

/ |5 F5 b% ]# Gstatic struct platform_device da850_evm_tl_leds_device = {1 ~) s3 `$ X  C
        .name                = "leds-gpio",0 I! v! c- w4 Z
        .id                = 1,* ~6 h) O! e& e' O
        .dev = {5 `, j8 x" i; b% C! I0 Z( U; l
                .platform_data = &da850_evm_tl_leds_pdata,
! [9 D/ E/ J+ o- i( P5 s( Z3 v                .release = led_dev_release,
% m5 t6 O% D, y  E* R3 X8 n+ ?5 C; ?        }
8 o1 I, i  f/ l5 J+ E4 ^};
; _6 X% A/ I# @# c# i0 i
4 R, K! b3 ~: e, d* R0 Kstatic int __init led_platform_init(void)
' ^! ?8 w* ^: L  [7 f7 |; G{( D2 e0 k3 m6 A' E* s: s" x6 E
        int ret;: q* _  [4 Y3 Q! \  F
#if 02 Q% u* C- I0 T' W! D" S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 Y+ d1 y9 q& i+ |
        if (ret)# k. I# b: c) o, E( V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 R5 f( f# X/ ~8 a7 O. t$ A
                                "%d\n", ret);# Q- D0 H" L2 H) i1 ^
#endif
. i" d% A9 k( {8 Q/ C( f4 y        ret = platform_device_register(&da850_evm_tl_leds_device);
; }' }. g7 g* f5 B. Y! W1 P, p, w        if (ret)
/ F; Y: X4 r0 D1 K. p7 l                pr_warning("Could not register som GPIO expander LEDS");1 f  n3 c- n; }& P; O+ }
        else
9 F8 m& E1 `0 n# }3 l( `) V                printk(KERN_INFO "LED register sucessful!\n");
3 G9 ?7 p* O( A3 f- K( \  @" z" W, m+ e
        return ret;9 B: F) E$ J' n9 Q  i9 i
}
% s5 e3 d- q( P6 i! I; z, r( f- s" v# f  m, ~. j, Q, n1 F
static void __exit led_platform_exit(void)
& v* I! \: U% q$ v; R; a{1 A( l; m  [1 f! @- u( P3 x9 t
        platform_device_unregister(&da850_evm_tl_leds_device);
. |) p: X2 H5 a5 N4 s
# h$ j8 ?+ K0 `5 U& L5 Z: J        printk(KERN_INFO "LED unregister!\n");
; `7 c, z. @. \' Z9 Z# o$ [}/ w! `. i; C3 P: l/ D; h- t
9 ]" h6 h  c9 m5 S5 s& Z
module_init(led_platform_init);
6 [8 J0 `& a* x8 {- b5 M" Imodule_exit(led_platform_exit);
9 I5 X: F* s3 w! A; a+ i/ n5 c- V; U# [/ w7 v
MODULE_DESCRIPTION("Led platform driver");# Q( E2 t3 V( o1 ~7 j+ ~3 l
MODULE_AUTHOR("Tronlong");
& \+ W8 U$ s+ |. cMODULE_LICENSE("GPL");
5 Z$ A1 h5 C- n( x) E1 ]8 _, V$ ]1 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-26 21:40 , Processed in 0.042025 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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