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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' M& V) x; R3 x! v; p1 N
#include <linux/init.h>$ h( ~$ r+ \; C9 o
#include <linux/module.h>9 s5 j& R6 ?" z. n1 e
#include <linux/kernel.h>) Y8 O# a$ C. q4 @7 g( |* }
#include <linux/types.h>- b6 X  b- r8 e. i
#include <linux/gpio.h>
) s! d# R& i2 y; b9 ?9 I. y#include <linux/leds.h>4 i- k& y' M; B; _0 \6 x2 ?$ ^
#include <linux/platform_device.h>+ y9 f! K" ?3 j6 {* d5 p  |

) U7 H/ n& t1 i9 Z6 Y( \#include <asm/mach-types.h>5 ]6 D# y2 x9 T
#include <asm/mach/arch.h>
1 o% q+ h( Z% x* v#include <mach/da8xx.h>
: L- L+ o/ }. c, d+ M7 Q1 z$ I#include <mach/mux.h>
$ }5 B- t) d" _2 z7 F% s# h) N- H! M: E6 J& A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  U: M/ ~. c! h5 n7 X. f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( {. d# p( K0 P  q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ @8 d  G: o+ r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( i6 Y; U0 W# H# h' W$ M- U
' i4 c( l( a* J/* assign the tl som board LED-GPIOs*/5 z1 e. ~: O1 a( z1 w7 k( `
static const short da850_evm_tl_user_led_pins[] = {# V, m0 v* _0 U( l7 Z
        /* These pins are definition at <mach/mux.h> file */
, n' @9 U- y) I8 s  C" C. |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 L  l% O! S& T: _' t1 O        -1
/ |& u: A. P( ^5 Z7 I3 O" q) M};
6 o1 J% p) ?& t+ ^3 |1 B; d% y' w. q- y$ G6 k
static struct gpio_led da850_evm_tl_leds[] = {+ O! {0 A! o: b3 n9 S: O
        {4 ~, r' y2 }5 b5 o. V/ L* F
                .active_low = 0,! Q! J2 l7 Z, N8 n0 b6 ^
                .gpio = DA850_USER_LED0,0 S/ y  }( [2 ?
                .name = "user_led0",2 f& o7 [# B. ~% Z  ^3 `/ z9 W
                .default_trigger = "default-on",
( r3 j" @% h( N* R        },6 X. j  q0 `7 l2 V# _9 {
        {: q, p8 x8 o3 ]$ H' b/ ^) y
                .active_low = 0,! l3 ~1 q4 o- x6 b. }# K0 s- I
                .gpio = DA850_USER_LED1,( u2 |+ w+ I2 |
                .name = "user_led1",5 p$ Q5 H6 Q" @3 ]' U
                .default_trigger = "default-on",, F+ D! y9 R" A: i; {' {5 e) `
        },
2 j& |' F, _# A4 k        {
8 O- J* s3 x/ G                .active_low = 0,3 p' A7 f+ g, R+ ]+ \
                .gpio = DA850_USER_LED2,
; P& x* Y/ Z9 U4 D- f* ?) n$ }                .name = "user_led2",+ c5 Z' d8 L- D* O- ^) f% ]$ x
                .default_trigger = "default-on",- p% @) X5 p4 t$ F3 x- O& t  [
        },
3 H* L$ n: K' @$ F        {
+ b/ J2 f, U8 v3 X2 e* w/ J2 n                .active_low = 0,
' _* J' g  o" v2 f9 |, w" i                .gpio = DA850_USER_LED3,
2 o1 ^$ M" [  N! E1 i                .name = "user_led3",! C' m+ B; {8 [2 H, ~
                .default_trigger = "default-on",
0 J- I8 Q# y- T; k$ G        },
. K# b5 Q7 ~1 ?: |};' N7 n7 q( `  x
, W) k9 T) D. P4 n9 i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' k2 J- s4 l- E$ [- u' y- H' O! \2 u        .leds = da850_evm_tl_leds,
. Z- K2 b( G0 x5 R        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: K0 p3 C% }  v: I+ C9 T
};
+ @: B3 G" k  P+ i, J1 z9 R( s8 b
static void led_dev_release(struct device *dev)
1 i1 _' `( u- v/ C: F3 I3 Q{
/ ~. D% E4 c. E( U9 O( y};  i% n1 W$ D) i0 w8 n  n5 p( |

3 ~0 c4 |9 |% p; sstatic struct platform_device da850_evm_tl_leds_device = {
9 J0 q6 z& Q" w9 L. b- x# ^        .name                = "leds-gpio",
4 c! e! a7 |1 L7 k) _        .id                = 1,
: b7 g3 _/ m9 h+ O% g6 u        .dev = {7 i- W/ Q* t' {. V/ `% D7 N, C
                .platform_data = &da850_evm_tl_leds_pdata,$ f# T3 w: c% ?# `0 l0 s
                .release = led_dev_release,* |8 B+ w6 K- F+ y. R; \5 ~
        }' B% H4 ?- ]; d: J4 t
};
% O& f# D" ]5 f; s3 w& E
& c: U: s& Q7 c$ \& W) ^  Ustatic int __init led_platform_init(void)
  P) ]  |% t8 `0 j1 W5 e4 l{) G" a2 m$ ^. K6 U9 Y6 g6 F: e
        int ret;- y" @$ W) {6 `& o
#if 0
3 ~9 u, I+ q4 h! F        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 M) K4 U$ I0 ?, G        if (ret)& U. [/ P& x, {3 B) `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; n; y/ X* H* ?4 t4 N$ O6 r5 F
                                "%d\n", ret);. G" d& h) b, A& g# h( l% L
#endif, O+ F5 \9 {) w; r; T" ^
        ret = platform_device_register(&da850_evm_tl_leds_device);* ~: m0 [+ _' G* e8 L. F1 L3 C
        if (ret)
6 |% G1 K, i. |+ C                pr_warning("Could not register som GPIO expander LEDS");+ n; T* x7 x& [$ U) q! `' _$ b# P
        else
& p8 N" R" L' B" w9 C/ _                printk(KERN_INFO "LED register sucessful!\n");1 Q/ b2 ?* e! |7 b1 Q- n

, m$ y5 S2 D- q, b+ j$ F. t        return ret;
( A" W5 t" e9 T' j# c0 b& T  t- F6 U}
0 a4 ]3 }' o0 I5 ]: {, I7 U
4 l* R- g% L, \- v$ N, Xstatic void __exit led_platform_exit(void)
4 O" T. a& S, y4 B{
2 b$ t5 H2 P9 k) m6 R, o8 t1 l        platform_device_unregister(&da850_evm_tl_leds_device);! c: c6 ~9 C- ~

  [- ^# U5 `" E$ B( v" {        printk(KERN_INFO "LED unregister!\n");, Y1 ^5 Q3 g% p+ ]0 w" t; e6 S6 L2 j
}
) v9 o) i( \: q& f+ r7 H+ B5 E+ l' P: r: w: n3 I
module_init(led_platform_init);6 p( R3 |. U, _0 y2 ]9 h
module_exit(led_platform_exit);
' |0 p" V  ^) r0 p+ a* k# \! C2 e7 D1 |4 @, w# l. T2 w
MODULE_DESCRIPTION("Led platform driver");. T0 t; i8 E- Z: \* K
MODULE_AUTHOR("Tronlong");4 U2 t7 l0 n& ^6 ]
MODULE_LICENSE("GPL");
1 B6 G5 a3 e1 T: t8 m; w1 a
* W* z  j) m# X* K& {; E  q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 03:51 , Processed in 0.042145 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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