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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% g' B/ }/ Q. e% A! _#include <linux/init.h>
- D+ `. d7 F: s' t3 T6 O) z  Q#include <linux/module.h>8 j4 |+ N3 ?) I3 R  r5 R
#include <linux/kernel.h>, O8 Y6 C" r5 p) _4 r' p1 j# z
#include <linux/types.h>
5 n' O/ c& L5 `0 s" L4 N# T; {#include <linux/gpio.h>. Q8 {( I0 [. R# `
#include <linux/leds.h>
7 l" S* ?% h' O1 q. b# A6 _- j#include <linux/platform_device.h>* G, I$ _+ p: [, p; P

1 p. i7 x, P3 {5 {- m#include <asm/mach-types.h>
$ Z) I! A+ K6 w5 v6 V7 U- I#include <asm/mach/arch.h>0 f  y* B% y. g
#include <mach/da8xx.h>% K1 L2 W5 X; i0 t2 F5 v: t6 a# c
#include <mach/mux.h>* D* x7 S" |% I/ a& Z& `
$ ?( G& i6 ~7 {; K
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 E2 ?# T1 d! e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 b- J, _) U0 u2 F( r: B0 e+ a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( l! [) ?; N7 c$ r0 D& |0 |1 o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 L1 A+ r  P  ^' G5 w
2 J+ C- Z' G8 s7 I
/* assign the tl som board LED-GPIOs*/; [& R; Y+ Z2 @
static const short da850_evm_tl_user_led_pins[] = {: y8 }* b3 R7 l; x$ ^9 P
        /* These pins are definition at <mach/mux.h> file */0 c% e! u9 H2 k. {; p9 Q. r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 v. a8 ^& G4 n; O8 N/ I: f0 u
        -1
" C3 b9 o% i' ]0 G2 y  p& C5 T};* f+ \& P7 i9 m% h+ ^) Y3 B
& O; ]9 V, w1 b
static struct gpio_led da850_evm_tl_leds[] = {: _4 v1 W& l( H, t! P
        {, j4 s, D8 Z. A, a, }
                .active_low = 0,9 J6 M+ ?" E( u, t. y
                .gpio = DA850_USER_LED0,# _7 P* [" Y+ |7 @- u7 E
                .name = "user_led0",
- o4 \% D$ j! M& h+ Q                .default_trigger = "default-on",) B  w, L, o* Y5 K' Q
        },
; f' v- [+ K* o# O2 {  P  ^( U        {' o5 ^" E( w2 G' s6 S
                .active_low = 0,
& t  `4 C4 \2 Z1 ^3 I/ D' d: f                .gpio = DA850_USER_LED1,5 Q$ S; h9 @4 k( ]
                .name = "user_led1",) d. J( u6 |1 ?; Q" h9 L" p
                .default_trigger = "default-on",
+ w* ?" L* M9 X' R  }9 {! {        },6 b. B% V- d2 \  z
        {
0 X$ U3 B; n7 L& [                .active_low = 0,
, F# E6 K) J3 R$ o1 `                .gpio = DA850_USER_LED2,
5 o7 I: w. V  b! X3 P: N                .name = "user_led2",
: f1 C# k$ K% D                .default_trigger = "default-on",
9 F% R) q, R# i$ z! Q$ [3 W* V5 ~3 _        },  |4 y# ]' `; g: {& B5 [' e
        {* y  O+ d; ?' h+ G$ f
                .active_low = 0,( L  }6 L6 N$ z. r. U
                .gpio = DA850_USER_LED3,' u2 g( E+ X9 L4 P; O. |
                .name = "user_led3",; j7 R) n8 {# C
                .default_trigger = "default-on",
3 V1 [* R) o0 p% @/ l4 H( D        },
. v! Y  S8 G0 ]. Y7 q/ W4 P};+ V5 v- f8 ~$ y, p# f
$ V+ @# w7 A3 Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* K; K  N7 H- a+ p3 e8 g+ q
        .leds = da850_evm_tl_leds,
. T' J+ E) L/ q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 u" N3 H1 a& [
};' L9 t/ t6 C9 e+ n3 N
5 p# W  M# H2 Z, e; Q
static void led_dev_release(struct device *dev)
2 q6 L9 o7 G5 l8 g{
. _1 {9 `$ }' ~- M};
6 t& }( R6 H8 h7 [' l* X, n
. s6 S9 i+ `# m2 zstatic struct platform_device da850_evm_tl_leds_device = {/ b; @  `4 M1 r& D
        .name                = "leds-gpio",7 @2 {* H3 [) }3 G5 c
        .id                = 1,! Y6 I. w8 Z6 Z1 {5 Z/ F9 `: c
        .dev = {
  o2 ]! P8 U. Y/ z; f! X5 h                .platform_data = &da850_evm_tl_leds_pdata,( i4 ^8 _: k$ q: n
                .release = led_dev_release,
9 ^- v& g: P% C0 n! _9 D        }
" i7 H0 m$ T$ p) G7 b( H};
/ t; H/ ~8 P0 D3 f3 ?0 \, ]8 E( Q7 g
1 L+ H- C: k' _static int __init led_platform_init(void)1 ?6 F0 Y; G4 U. w% t: k
{5 l( Y% N! K* X' R9 }
        int ret;
; u8 K  A: o  D4 W, J#if 0
8 {) H6 [$ w; m0 p: T* ~& b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 [# F- E# d' _9 P: X9 z, M        if (ret)
6 U6 u" y$ y* z) W/ j. [4 `1 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( |! p! e3 Z3 R
                                "%d\n", ret);
; B, \& J; U% j4 M) {1 ?5 u#endif0 }% G3 G0 @6 F+ U
        ret = platform_device_register(&da850_evm_tl_leds_device);
- a" _* c. Z/ ]: w( c        if (ret)) |* M3 x3 W9 {
                pr_warning("Could not register som GPIO expander LEDS");* w6 I+ f6 p; P& y
        else" q) s. |& s( k2 N* F1 }
                printk(KERN_INFO "LED register sucessful!\n");9 ^7 B7 n" y; s' r3 o2 l/ m8 |; O4 ^1 j

& f! z& j" f& ^0 a& e        return ret;/ B* S' r9 Z0 d: O7 y  y
}
" N1 }, Z, ]2 O4 ?7 U2 w8 G6 O6 e% R+ x
static void __exit led_platform_exit(void)
) K! ?/ E' r% n4 [1 g1 t, f{7 t1 ~2 p6 I2 s- h( t* W6 F
        platform_device_unregister(&da850_evm_tl_leds_device);& l1 T, Z  w3 v7 r6 p+ l

2 e4 I; D  Q& u. i" ~        printk(KERN_INFO "LED unregister!\n");9 [" O% J# y1 ?# s. m! ?* |  w
}! X9 P9 v1 T& F5 _
5 D, g4 \+ G, E8 ]
module_init(led_platform_init);; z9 `4 k; j5 ^( j& o$ L2 P  P
module_exit(led_platform_exit);
: u. _' i" U7 ?. P, A. B+ H
0 y+ B2 q$ a( x- A1 x& wMODULE_DESCRIPTION("Led platform driver");
- v( G  A: K- n7 ?- h, Z; Y9 \+ _MODULE_AUTHOR("Tronlong");
5 p! J+ e, t* _# c' GMODULE_LICENSE("GPL");  S8 v2 N0 G9 F0 }- f

: c7 X7 Z+ }- E1 A. o/ x, H1 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 10:14 , Processed in 0.038851 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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