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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 k( u- J9 ^4 M8 A: x: Q; J3 w#include <linux/init.h>' ]! ^) e4 t" D  J& U; ?8 b3 u( h
#include <linux/module.h>6 c( Q, d. b9 X) @* e+ @4 D
#include <linux/kernel.h>
, o# s0 g- }/ w# d( \% B5 A. J#include <linux/types.h>: \+ J' J; e& I$ D3 v
#include <linux/gpio.h>' C1 ?' q$ f5 T8 P
#include <linux/leds.h>
' l/ k6 q8 U! V) O#include <linux/platform_device.h>- i& D/ q* D  W( \

% R1 b6 |* g) b! C4 j4 Z#include <asm/mach-types.h>! k! q8 @" d4 @# @1 U% m/ y
#include <asm/mach/arch.h>2 _9 q* i$ V* c+ E; f9 M
#include <mach/da8xx.h>
$ |) l0 L3 R, a3 S+ N#include <mach/mux.h>) A+ O6 u9 x& l& c# y+ e. a( o
1 w  {& E2 f4 T5 v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% }/ k2 A  k$ g. \#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' N, z$ s% L# C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 E9 v9 v- U( k- P5 b. a% J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 Z) F- @) `% W7 d1 @$ ?) C6 ~9 q, P
/* assign the tl som board LED-GPIOs*/
, Z+ l; v; O( Estatic const short da850_evm_tl_user_led_pins[] = {% A+ t  a  E/ {
        /* These pins are definition at <mach/mux.h> file */4 k! P6 \  A& M2 o+ V! ^* u$ m* e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" H5 u3 h' g( m7 F+ G) x2 {7 u        -1: s' ?; J( P% u3 C* k. b/ _
};
% [5 D) J6 G1 k/ b; ]4 M# j8 z: i/ |4 p5 [" [7 O& A' z
static struct gpio_led da850_evm_tl_leds[] = {
% U+ A' e! S7 V* d8 A4 t6 Q: E        {$ _& R9 Y( t4 [4 i; l
                .active_low = 0,
" y, K. w6 P/ X9 X6 I                .gpio = DA850_USER_LED0,
$ a1 g. M" W4 m9 I) I( u                .name = "user_led0",
- Q+ e6 y1 p) }6 a. u                .default_trigger = "default-on",
- B# q9 \7 y. f3 n        },
* Z1 K, B  e% \: o& p9 S        {3 d. n. Y6 |" d* ~9 ~& d2 b& }
                .active_low = 0,
% u7 \) ]1 ?8 f9 Z* i" [8 D                .gpio = DA850_USER_LED1,
) B; m) ]! B' F$ E) N6 I                .name = "user_led1",3 G9 T5 k/ E2 m. f
                .default_trigger = "default-on",
; ]3 D; @( W: k9 e* Y7 k        },
0 D% T' t! V' D, K1 g( T        {
) F" {) }7 n& W% h  N* B' ]                .active_low = 0,4 M5 ^6 x7 z0 D) @# {6 m+ i, c! K
                .gpio = DA850_USER_LED2,
' P& t6 `% ?* H5 y! @                .name = "user_led2",
* N5 ?- Q2 w- _1 S' g                .default_trigger = "default-on",! Z# n& X1 V) a, G5 ?! Q& O8 ]
        },' q$ S* E' o$ o! X- u- ~4 G
        {
/ k" _# c! ]* {, c$ n$ N                .active_low = 0,/ b( m* X: l; I7 ^6 H; a% a% i( [7 E
                .gpio = DA850_USER_LED3,8 Q8 l6 J4 U4 G' N  B( F9 N4 L6 e
                .name = "user_led3",1 J( c% j! ^/ j, n  C
                .default_trigger = "default-on",
6 F* U4 b. _  u4 O: b- i) K        },5 b1 q( R. Z- D
};
; l, D1 c) R# U, b3 r* E& d, W& E$ |! X6 i0 @. r' v' N+ {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ ^/ P* p3 f) {" i9 w) U
        .leds = da850_evm_tl_leds," N9 p4 E7 k, i, D: Z5 M/ e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ B& e. n0 X9 }# g! R# ~/ N( X6 @5 t7 C};* I6 i/ H( v7 R+ c& N: U' W0 l* v

( _+ j* S/ O2 n7 O  I2 Tstatic void led_dev_release(struct device *dev)
, K0 ^1 a. z) U$ f{& _: i* N8 F5 K# U0 s9 m
};
2 |5 j6 K2 {' I) `$ ?! X+ s) _  a$ N( b7 ]: Q% Z1 ?
static struct platform_device da850_evm_tl_leds_device = {3 ^$ g; q# W( e) S; x; u0 Q5 @5 m
        .name                = "leds-gpio",# y) {7 v' r0 F% c, f
        .id                = 1,
5 K$ f+ y5 v! m        .dev = {' }; v$ T& J& B! a: K
                .platform_data = &da850_evm_tl_leds_pdata,2 I( o" i) Z: I; |) D$ d% I
                .release = led_dev_release,# \  X' N, k. ]* S: }
        }; @7 Q2 L  j) J' K! Y3 E
};
1 U* {5 v2 C7 ~2 V, L
5 O/ X- _7 V, J9 P7 m- fstatic int __init led_platform_init(void): H* _( r# V  x6 J& d+ ]' a5 {
{  O& _$ r' o7 M  r, ~/ Z; B
        int ret;3 Q: S) |% b; X8 |. X
#if 0
! D0 _4 v* F& H% [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ G% G5 a+ \, S# A! |9 j
        if (ret)6 R" b/ d9 k, W" q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; r4 A0 \( G8 ?. Y7 J2 ]7 ]
                                "%d\n", ret);
7 ?2 d9 b# C! O" @+ L#endif
: Y9 \: I1 i& \9 z) y" d        ret = platform_device_register(&da850_evm_tl_leds_device);5 p% R/ R( D7 a5 `7 r
        if (ret)
0 |# D- c$ H- k- I                pr_warning("Could not register som GPIO expander LEDS");  U) J9 k7 `( x
        else
$ I) m3 l- N- h                printk(KERN_INFO "LED register sucessful!\n");
& S/ q* X+ r! ~8 {- S% K& t; P4 _. l! f. s  R& s' t( W% F4 x- y6 s
        return ret;6 l1 ?+ n0 M1 u. L8 j6 u
}& P9 D' h* S$ F8 x1 c4 Y" E7 `
1 Y6 H+ H# O0 x* M) H
static void __exit led_platform_exit(void)
1 m" C- i) k/ |' S$ f- S. L1 [{
% V; X. n! N- z  @( \        platform_device_unregister(&da850_evm_tl_leds_device);9 I  P0 e6 y3 C! D: k6 ]4 c

7 c, t4 p2 x# @* X- Q5 T6 y        printk(KERN_INFO "LED unregister!\n");, K5 ]+ t  M7 ^& D) q3 x1 G( O% w
}% o) J; v- v0 v' x2 L# W, D# i; x

* A* h) Z# q6 T: ymodule_init(led_platform_init);
! X+ L' I# B, a" f6 cmodule_exit(led_platform_exit);
3 L* Q) V: }$ p* M: j" k; ]( H
5 v  K$ H6 q  O: w+ L* K! i1 MMODULE_DESCRIPTION("Led platform driver");
) `5 X7 g  `2 Q+ ?$ A! H6 O) x/ FMODULE_AUTHOR("Tronlong");% K/ x4 |, W6 X# t
MODULE_LICENSE("GPL");
/ i$ }, F: i( Q' T! _+ Z* z
5 p8 F/ y! J5 ~. N1 {. d* Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-22 13:47 , Processed in 0.038531 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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