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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 S6 T) c2 p! x- u: C" J#include <linux/init.h>
& L9 N; d+ z) q2 Y9 S+ o2 g# C. @#include <linux/module.h>
0 M$ ?' O2 M/ {) Z#include <linux/kernel.h>
/ @! Z5 W3 s) z6 W4 _; n: ?#include <linux/types.h>
$ C1 g3 A& h2 D% Z8 ^2 Z4 W  \#include <linux/gpio.h>
# l0 y: H5 Q+ I1 s5 h" X& {1 |; T; G3 h#include <linux/leds.h>+ v4 ?" X6 {( v8 J
#include <linux/platform_device.h>
3 F$ b6 s( R) m* V- g6 ^: ?: X: h: N: T5 [; i1 I
#include <asm/mach-types.h># |+ D) C3 ]8 R- k# l
#include <asm/mach/arch.h>
; l& U) ?5 F  v' b- Q# w3 P  {#include <mach/da8xx.h>+ l% K% C+ o! ?* |2 i' s6 x
#include <mach/mux.h>
3 |6 Z+ o3 N' V6 x, z2 e3 t6 z/ W- s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 P  a- o+ y) h# d* h1 a  d$ t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) o4 H8 }5 E. v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( A7 c7 C+ r- @% V7 p! ~9 J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 |* e. U+ n! O" z; f3 N$ p

7 \7 T& O. X0 E- W/* assign the tl som board LED-GPIOs*/$ v& g8 }; G/ y0 W
static const short da850_evm_tl_user_led_pins[] = {+ U9 W; W( J, X' Z) m2 _0 N
        /* These pins are definition at <mach/mux.h> file */
- [; p& s  @, [* w2 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 X2 r7 r. V* J+ n7 d# ~        -1
5 H. _& N( d" a8 V8 `$ v0 E};
. \5 c% e  ~. U* F: y: a% U5 g0 }/ I$ I) @- E. ?: Q* X( y$ _. d1 H# D& t
static struct gpio_led da850_evm_tl_leds[] = {
$ T* b: R$ V5 q2 _. e+ T        {) N- T  v1 W! z$ |
                .active_low = 0,$ E- N: D( {0 k
                .gpio = DA850_USER_LED0,
8 F3 k3 O* c% V, \: S4 l  K                .name = "user_led0",
. s# l  J  O4 n; Y! _. }! Q                .default_trigger = "default-on",
8 J4 J# a$ B1 w6 n# H+ p* W        },
5 R  t/ P" u/ e3 \        {
9 F1 ^" }5 j" K, D1 Z2 ?- x                .active_low = 0,: Y' X7 D* V' M; k" Q
                .gpio = DA850_USER_LED1,
1 P9 E1 O6 F& y9 n. e                .name = "user_led1",0 k1 e9 p, n# @
                .default_trigger = "default-on",
) d3 u1 o' ~6 e& @( s        },
, o/ d# x! i2 t        {
( ]  w6 U9 \9 g5 ?5 s                .active_low = 0,/ I7 X7 q  P2 G
                .gpio = DA850_USER_LED2,
: |& V1 l/ U% l- d$ |0 s4 e                .name = "user_led2",+ G2 I: `, D3 b4 i/ C) y
                .default_trigger = "default-on",
7 Q1 J  p: F' B/ T        },
2 b9 c& C+ L0 [! f8 J2 C; ?        {
9 y& c) y8 e' q# z9 A' N  x                .active_low = 0,
0 l) o9 L: g# s1 ]* r& _                .gpio = DA850_USER_LED3,
8 ?6 t* X0 T7 }3 k% g8 P1 D                .name = "user_led3",2 U% P! U4 G. L3 P+ F2 j
                .default_trigger = "default-on",
. i0 J# |2 S8 x& c        },
8 D6 U  X6 z5 |- x" @# O};
# ^8 s5 f) F# }* d) Z' e1 s. N1 P9 \4 @: a& H  Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, O% l1 a' s7 t& T& s) B6 w4 W
        .leds = da850_evm_tl_leds,4 K* {" g: |3 p0 S' V' @8 P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* e/ T& `1 Y$ H$ ~4 T7 O' Q% j
};/ j- `0 X/ \" h) K* J$ |

. N* [0 R/ ~6 v! |+ R1 Xstatic void led_dev_release(struct device *dev)
* C! I8 X- P# b* U) P{% a; B# E0 |2 W1 z6 @2 q" V; [
};9 k. ]' }, c  Q$ A2 C

: }5 I# O' `" L# }5 O9 _/ g  Rstatic struct platform_device da850_evm_tl_leds_device = {
) H5 U+ d7 [( V* y$ X7 b        .name                = "leds-gpio",
0 ^3 s$ i: L9 {; u3 v        .id                = 1,
, Y: C9 D4 a& z; I+ L. N  E        .dev = {
- }$ y9 m% ^) b$ x0 k                .platform_data = &da850_evm_tl_leds_pdata,! G  i. F" u# g! |8 N. u/ m
                .release = led_dev_release,
7 v. l3 _3 x$ v: D% F        }
& T0 b! {; ?% Y0 J9 `};
! Y5 D6 M. r) ?, g) n7 u* ~+ `8 G" d
0 g# @$ P0 _! a0 hstatic int __init led_platform_init(void)7 @" j9 E1 y3 c$ b1 u! G
{
/ n+ k( s! C& b, h7 U        int ret;
; l5 R. b/ B  j& w2 q#if 0: U- h5 |  Z; d0 P$ k) T# Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 Z# ?0 M8 H! z5 u# K0 Z3 N
        if (ret)3 g4 r0 I8 A$ s: i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ e% b9 p. ?. E4 r                                "%d\n", ret);& b! o# S6 t3 R/ p  X
#endif
. X+ x- F$ C- w- i# t8 S        ret = platform_device_register(&da850_evm_tl_leds_device);7 F  m! h: q8 N4 H
        if (ret)
; Y- w+ {* `" K. ~( G- @& B& h                pr_warning("Could not register som GPIO expander LEDS");6 e" Z* Z, Y7 `& Q+ {# Q* G$ }$ i
        else
) q: |; [8 L  Q) H1 B" x% E1 d' z                printk(KERN_INFO "LED register sucessful!\n");
; Q7 M) U+ L3 R* b: O1 p3 Z) Y5 r( F; T0 A8 u
        return ret;
& A& s" A$ @; k1 o% I}/ t+ @" ]4 \2 e0 x3 [/ D" X

( u% Z3 s' \  U! a! O8 j4 fstatic void __exit led_platform_exit(void)
/ l" M: Q7 V/ ]- N{! {& Z2 U; o  k( X
        platform_device_unregister(&da850_evm_tl_leds_device);# j8 r# ^+ d) G; f. k/ b

- H+ E6 `+ B1 p, ^' V        printk(KERN_INFO "LED unregister!\n");
2 D2 y. s! R% n# c+ e3 n0 z2 N/ B}
: p  F( ~' t2 h4 r$ s
, {# c5 e% o8 p; R( Xmodule_init(led_platform_init);. D; f& U. z& `, W' T/ a7 E
module_exit(led_platform_exit);
0 x9 G; Y; `( E3 X7 J
  ~! ]  K4 R& g3 Q! `. ]8 k6 sMODULE_DESCRIPTION("Led platform driver");
. G; U+ T8 D. mMODULE_AUTHOR("Tronlong");/ [1 |+ F% [" X9 W- G2 T/ [8 J4 [
MODULE_LICENSE("GPL");+ B& U+ e$ |" ]  i  @# t
4 ~2 T8 Y6 j; j* k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 00:07 , Processed in 0.040777 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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