程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ @6 F; {4 s% i3 \4 R8 L. C$ i" n
#include <linux/init.h>
, J8 g! {1 o) |. n4 r#include <linux/module.h>7 g( f9 o& G: A6 g
#include <linux/kernel.h>* o' R: }: e$ o$ q: b- v& C
#include <linux/types.h>
% g+ B% L" u& c; A#include <linux/gpio.h>
  {' A# E6 a! q! D6 W#include <linux/leds.h>
+ @& f* B4 w% U; L#include <linux/platform_device.h>( e6 Y. T; y6 E' u, O
! R! g3 w' w+ i6 H+ T4 `
#include <asm/mach-types.h>
2 C+ {5 h' D$ x  ]# N, }. \/ H: s8 V( T#include <asm/mach/arch.h>
, v) e: t7 [7 ?: D( X1 S1 S#include <mach/da8xx.h>
; m# G( U, i* F9 R) e#include <mach/mux.h>3 {$ Q1 ^7 v/ y. e7 O" t
+ ]- t- y6 ]/ b9 ?8 L' O$ B9 o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- K. t, B, a1 ~6 N4 {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), i! I2 e3 l* |5 `. f2 P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 {6 e/ a5 M/ G& y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 P8 Y/ O$ n' r7 I5 q! {& g# {3 V
* |- d* N* e& w9 H
/* assign the tl som board LED-GPIOs*/
0 B" G$ s$ {0 p2 \static const short da850_evm_tl_user_led_pins[] = {, G/ M0 g/ k) Z
        /* These pins are definition at <mach/mux.h> file */3 i* x# S6 ~( o, A6 ?2 w4 _! Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 }$ k/ A& S6 l3 W
        -1! Q, y6 d) Y# m# z0 N( {% o
};
5 R1 w2 y+ p2 ~: d. t7 N7 }8 I+ `
# f# D( A3 n* }5 Qstatic struct gpio_led da850_evm_tl_leds[] = {
" _$ ^' b5 U( D8 T8 R+ r! D5 h: o        {
: R- N1 h# a2 H0 N                .active_low = 0,8 ]( t" I  T3 B. A3 o
                .gpio = DA850_USER_LED0,9 i6 D% Q) \/ t5 A8 B& b) z
                .name = "user_led0",6 `5 d3 m: W$ C  n% k5 e
                .default_trigger = "default-on",
6 R4 Q4 k! I5 c" M8 M        },; p) ^% C( {" Y7 r: w# u& r
        {* g" ~5 i( a5 W, g: [5 u1 Y
                .active_low = 0,
: B/ i% V& Z" A; f                .gpio = DA850_USER_LED1,! _' H' \! C. y& m; M0 R
                .name = "user_led1",5 T" O1 n0 K' p0 y' T& g
                .default_trigger = "default-on",
# m! W* i9 S- {# t* U: n        },
& @* u' l9 x2 _# b0 o  m0 B        {: h: h2 X1 j& v1 q4 w. T. A3 ]
                .active_low = 0,
; E3 p; i( E6 F: q- A                .gpio = DA850_USER_LED2,6 D$ P% G8 g) ^* [
                .name = "user_led2",
* ^9 p1 {/ t- q% L- n6 O                .default_trigger = "default-on",5 T3 C$ Q+ \: p7 U
        },
, [* [+ m* K, k# H- M- A        {4 B( t' J0 ^1 f# X/ r0 Q. `
                .active_low = 0,' i5 z) _6 ~2 ^$ L4 f/ m
                .gpio = DA850_USER_LED3,
  Q9 k7 _/ t5 @$ g  Q4 x1 X5 W7 j                .name = "user_led3",
' Q1 ?% g8 @) y* i( {# i                .default_trigger = "default-on",
! u5 I6 q9 A$ b2 p        },( o+ M" X; J0 k+ G" K
};
2 X! I" x1 I& T' L/ R$ [8 O3 {$ a! y  i8 `( }/ ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 T7 T) W- n3 M        .leds = da850_evm_tl_leds,
0 T1 \7 n- m0 B( k        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ f1 ^; A, y& K, _! ^
};
* n3 g5 {5 m& V, n* }
6 ~! f$ a' [& f& ^5 O' Sstatic void led_dev_release(struct device *dev)* [$ y: a1 q: z
{( @& M( u$ n1 R
};
  T3 @% a$ b9 j7 P9 N2 i2 d7 M9 ~
static struct platform_device da850_evm_tl_leds_device = {
: H8 A3 j1 C/ c- X+ c* K$ w. L        .name                = "leds-gpio",
8 d) t1 b5 G, c4 w6 l0 m5 q        .id                = 1,2 |/ s7 D7 M4 G3 D4 f
        .dev = {
2 L9 C& o2 f  H                .platform_data = &da850_evm_tl_leds_pdata,2 g- g) y. {! I- `: O3 G
                .release = led_dev_release,
1 H/ g9 [3 r( p9 y        }( {- o$ {5 R" a& R% ~% X4 e: ~
};' ]# O0 H: a$ c; L

0 t* j) N0 ~# d5 p7 A1 zstatic int __init led_platform_init(void)
8 k9 A% M) b# t{5 u3 g* q6 V; r
        int ret;
% W' r6 d: y: ?. T* E! O; C#if 0& D: b1 g) a- o+ c3 E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& o5 p# j+ ]4 z/ B# J        if (ret)
2 e2 V( h( y2 W: y' T: O/ ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 m0 E/ d$ }& |4 ^) M2 b                                "%d\n", ret);
/ q7 {" r5 N* q9 e# _/ @#endif) [3 T' ^# N3 m0 H) Q
        ret = platform_device_register(&da850_evm_tl_leds_device);% C  o1 W# h+ {1 u
        if (ret)
$ ^2 L* v& i' R+ n- I+ _4 O6 F9 G                pr_warning("Could not register som GPIO expander LEDS");* y$ j: H7 S5 S: U
        else
: G1 C* a. j1 e& X                printk(KERN_INFO "LED register sucessful!\n");
; Q$ V1 ^% W5 R+ {; g' y1 O) S# ?! r/ z9 C- G
        return ret;
) k! {2 y  |, C# L}
# c$ |3 X: T- M4 W7 t: ^+ z+ I  v  c$ T5 ~4 i5 W) a' F
static void __exit led_platform_exit(void)
7 r4 V$ ~+ b0 t{% T0 y$ I3 }# E4 m% y. J8 A
        platform_device_unregister(&da850_evm_tl_leds_device);
- f" J; ]% s) l: p+ K1 T, b
& d, A: L* g7 |6 Z  ^' N- \        printk(KERN_INFO "LED unregister!\n");
' \- m( q& B1 ~9 ^1 F3 [- b$ P}
8 r" T# P6 S8 {  P+ z+ b' C: \
1 q$ ]" K7 _# W  `1 }+ imodule_init(led_platform_init);" g" B+ ~' v7 N8 Z8 u
module_exit(led_platform_exit);
$ L8 \) K: W) M- M8 B3 B, f& C* w+ w
MODULE_DESCRIPTION("Led platform driver");
3 f+ z: l0 `) Q$ o; k) b/ PMODULE_AUTHOR("Tronlong");2 C/ |6 s1 A: L8 M- m; a7 O
MODULE_LICENSE("GPL");
/ j1 ]$ ~( @$ W& G
9 F# c9 f4 P0 @* p1 s; z3 d  l( K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 17:37 , Processed in 0.037611 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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