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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 |: v: t# y* G7 d1 O3 G
#include <linux/init.h>
/ v8 G3 l4 x  z4 j4 ~#include <linux/module.h>. t3 L9 ~- ]0 [6 F
#include <linux/kernel.h>
# t5 O/ e6 {. B! i& E% h#include <linux/types.h>% ]( e7 C$ f0 V* Z  B
#include <linux/gpio.h>
2 ~2 H6 f; n/ `1 Q3 {#include <linux/leds.h>
+ G9 m: {5 a$ D5 o7 g#include <linux/platform_device.h>- O1 @4 ]$ y+ p4 `
+ X% @. o3 F0 j4 t9 F6 v0 G
#include <asm/mach-types.h>* m' |2 k0 D- ?# `5 E/ P7 O
#include <asm/mach/arch.h>
) X# Q: O5 U) O  ]; ~#include <mach/da8xx.h>
9 z9 m7 J1 f6 g: Y' H#include <mach/mux.h>
4 C1 p" I1 m0 r# [2 o+ V* G$ g- C9 O1 J5 p" ]1 c  d" n
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& {6 d; e4 @4 [' n, P6 V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 d5 M  k2 [! S" L- c0 I% g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! O. x/ V! Y2 C( E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 p8 Q3 Y6 O# |, M$ O& t
7 `3 h( f* R( Q8 t5 G
/* assign the tl som board LED-GPIOs*/' ?  ~- q' @/ Z- _
static const short da850_evm_tl_user_led_pins[] = {
1 u# r' R, W- D+ o1 Z" h        /* These pins are definition at <mach/mux.h> file */
, G: R# Q$ M9 m6 e; P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& a% k$ J' F4 h! I# P, k  Y/ i$ s0 Y
        -1
6 m: N1 v. W( {  n( Q& G};0 q# L& s0 |0 i6 z, Z. s
, x) d+ f6 d* T0 Y% Z4 B6 _
static struct gpio_led da850_evm_tl_leds[] = {
# n8 V4 `' m& }+ ?: y  K        {6 P, ^8 @2 ^  W% l, ~/ k
                .active_low = 0,- H) \2 Q( n# L9 d( `& X' S8 Y
                .gpio = DA850_USER_LED0," U( h* K7 W9 j2 J- E  q
                .name = "user_led0",
+ a/ j3 Y3 n5 W6 M% i3 ]                .default_trigger = "default-on",; p8 E3 `$ i2 f4 p
        },& n5 P+ l7 q. T/ b
        {
3 C+ H% X& A, N, J1 ~6 a% W# K& N                .active_low = 0,4 O$ V" X9 W1 k/ \- X- d- u& z
                .gpio = DA850_USER_LED1,9 X; x6 \% b# C9 ?9 z% V# U* U
                .name = "user_led1",
# G, U6 o4 z9 h* y                .default_trigger = "default-on",, ^6 Y' h& p2 s
        },& W. k* @& X. V+ V9 \2 a
        {
4 b; }% }. a( ^0 E8 ]* y: \                .active_low = 0,
7 o  k% X0 y& W                .gpio = DA850_USER_LED2,: |" G( H0 ~( y4 k% u
                .name = "user_led2",% a2 x4 _. J* M# w
                .default_trigger = "default-on",
% g, E" n* Z9 S        },
5 e8 k8 q" W, W% @* G        {8 w+ ?  _( T+ X
                .active_low = 0,& Q9 Z/ _" u  i1 {
                .gpio = DA850_USER_LED3,- {& B# u2 n: _( {+ V9 a
                .name = "user_led3",: v4 u; l1 {7 L8 D3 N7 r# s
                .default_trigger = "default-on",
' c' ^6 B, ~# ~8 N/ a* b. }  q        },* V; r/ i" H- z) L, `
};
5 G/ M" G+ n. F4 j' G1 ?& \6 y" m7 i' W; p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 ]$ E* K# T7 G8 |- F; I+ g- @
        .leds = da850_evm_tl_leds,4 ?4 D: j3 g- ]. b9 F8 V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 l, g2 s9 h, P4 p2 r1 ^) x};
3 w4 ^3 z, a% v& _
( i! x3 _8 V3 Q% mstatic void led_dev_release(struct device *dev)
; t: g) L* u/ s/ j( ^. K* ?{
& {1 ]3 u/ n2 b2 u8 c9 U/ ]$ [};/ N+ Q1 D% |: @! ]2 s
) k0 w# A$ A# ^  l0 k
static struct platform_device da850_evm_tl_leds_device = {/ D$ C' q: {, X. c# }0 {8 A
        .name                = "leds-gpio",
* f  U' X1 E$ g9 O1 }; t" Y        .id                = 1,/ @5 F7 a- {* m2 s& `9 n
        .dev = {9 T. K+ a/ ]3 K6 G% N% n0 s- v( k
                .platform_data = &da850_evm_tl_leds_pdata,
0 |5 z0 e: i! @( h                .release = led_dev_release,! i( B5 R2 z/ H* P) r
        }
, _5 L* x9 ]: _( u3 W. W# {! _: r};
( I2 }/ s. L) b& P# L7 T: O9 k( ]/ W, y# B) i$ |
static int __init led_platform_init(void)) ~* L, @; y9 k* ^
{
; e8 t: ~( R4 R; Y8 s        int ret;; L, [# |7 Q( E5 {6 D$ y6 e1 r
#if 0* g1 @/ o7 t1 |- S& m* d7 ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, }" A* f( [3 K5 O
        if (ret)
( b6 H. V( m( N( s$ y9 E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 ^: d3 w% ^6 X$ D" K2 u& i; K                                "%d\n", ret);
6 x2 g7 Z3 J% H0 ~0 X) y4 [#endif8 P/ d( G! B; ]  b
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 A$ |8 G4 M0 F! o        if (ret)( h. O7 b1 h8 r6 m
                pr_warning("Could not register som GPIO expander LEDS");6 @0 S* r( V! L! L
        else; _4 d& o. f0 z$ k
                printk(KERN_INFO "LED register sucessful!\n");
) d; h) Y6 h+ s1 X( O% u. z; k- `) ^8 E  n
        return ret;2 h) x6 I6 i0 m2 U3 q0 b5 H* V' M
}
* V) W+ z7 R. B( @$ N9 Y, V
# B, o1 W, }! z! o. `" |% F6 Nstatic void __exit led_platform_exit(void)
3 k2 M  m8 @7 Q: L; l7 R; L{
2 {1 Q6 f7 a& i% y0 U        platform_device_unregister(&da850_evm_tl_leds_device);
( ?; U/ x9 A0 H! _
" y9 y. j* Z$ g/ O9 o4 t6 p        printk(KERN_INFO "LED unregister!\n");
: B1 C. s3 L- W6 w9 g  G- }( s}
2 @  Y/ F4 I% f, D- |
3 c; Z1 W' J5 O6 C. K& wmodule_init(led_platform_init);
2 T# Y# E$ E: e8 I* ~+ Umodule_exit(led_platform_exit);
/ w& d' Z4 u0 n4 S$ }  c8 a1 X) g8 I1 p# q0 ~
MODULE_DESCRIPTION("Led platform driver");
) [4 e* L$ S. z# W& ^0 zMODULE_AUTHOR("Tronlong");
, D8 T. i' n8 v, I$ d% N! jMODULE_LICENSE("GPL");
1 a" a4 [& n1 C( U* t; a. Z2 v) I0 s) X5 v+ |/ _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 20:07 , Processed in 0.038876 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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