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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' C: P" A* u" u1 z& `. A6 p1 R
#include <linux/init.h>% T- {  {: v$ |
#include <linux/module.h>$ V' I0 C: ]: T9 S, ~* Z* d9 }; n  b
#include <linux/kernel.h>
* A* r- S# o, s$ k& H" h#include <linux/types.h>- F* l# @2 |0 s: w
#include <linux/gpio.h>
8 U7 f6 z: n. \1 [" v/ `/ o#include <linux/leds.h>
; w: k$ S/ ~4 |#include <linux/platform_device.h>; |% {3 I0 L4 I& C) }) O& {  ~9 W

  Q: Z( C$ p/ `# x. @- ?3 K0 I#include <asm/mach-types.h>
/ `" }! \$ U$ ?4 ?$ Q#include <asm/mach/arch.h>
  C0 C  E' B. M/ f6 r" q#include <mach/da8xx.h>. J3 @" c0 Z! p
#include <mach/mux.h>9 J9 T; b; _9 W

5 t: U, Y: ~4 X/ ?* H: d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& Y1 R- Q& C2 k$ b- s/ P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 [4 h" O5 B6 @) n% b5 z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: e( u' m0 h3 u0 }- v& l* C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ y1 w8 t0 D; Q1 e7 Y8 a; v- g9 {4 x$ P8 t' b6 {: Z
/* assign the tl som board LED-GPIOs*/
" k/ w1 K7 T: J* xstatic const short da850_evm_tl_user_led_pins[] = {  e+ u0 j  |2 t4 }* z1 r8 d2 ~8 J
        /* These pins are definition at <mach/mux.h> file */
# W4 n$ k" d  F% a7 j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. f' j1 ?0 F9 u) l! F
        -1
5 [" X# D: _8 }9 a- Y1 N};) Z4 [2 ^* S7 q4 I6 G" E
2 |( X+ T6 t2 Z4 O- z+ F
static struct gpio_led da850_evm_tl_leds[] = {
  ?1 N) `) Q# R& c# p        {
, W% G2 l4 p# D) ?8 ]1 J! Y% Q* G8 X                .active_low = 0,
* {' A) S1 D7 X8 n3 l; T                .gpio = DA850_USER_LED0,
' X' u2 |, z# C0 q/ ^' X8 z6 p                .name = "user_led0",5 \2 U3 [* l$ a  H) b3 J- _
                .default_trigger = "default-on",! \, \. V, q9 W4 y- C7 a, G
        },6 ~/ a2 D; {* z; I( l8 B
        {
0 Q# g$ }/ h& e+ b6 `3 m" {                .active_low = 0,  [; P, v! \8 p9 u. ?: h# q" ~
                .gpio = DA850_USER_LED1,
2 Q5 q" a& I" R! N( i: x                .name = "user_led1",/ F: _( b& V. F. _8 j/ f
                .default_trigger = "default-on",4 D' H; d, m- m7 ?* z! n( J8 n; l
        },5 v0 d- {& o' q7 \
        {
3 M1 N- w: N2 F1 }4 c                .active_low = 0,4 s! o! @! G; m" V! f( b
                .gpio = DA850_USER_LED2,
# W( f: H0 U! a8 o$ }. S9 r9 g                .name = "user_led2",2 c/ k- h5 p! c( K* ?% f
                .default_trigger = "default-on",8 I, A6 N$ d6 Y" B# w1 k( u
        },* n* N5 G7 a7 [. l# M6 X
        {
6 V# s6 `9 d/ z$ ~' ~" @7 O                .active_low = 0,
' e4 ?9 o: H, s! ^                .gpio = DA850_USER_LED3,
: _) m3 p' k2 y) r# B                .name = "user_led3",8 @, u* q0 }; C7 S: `3 Q
                .default_trigger = "default-on",6 T8 f) i  w5 u3 c7 e" G
        },+ `0 y* f+ S1 u& R% U& y
};  `. J, _6 B) t& c- V
. ~$ N( _, t& |& T# U2 ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. `5 W! i: r! J$ [( `        .leds = da850_evm_tl_leds,
! s* Y# |7 @4 c" v0 m7 ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; `" {9 A7 K; P, ^& h
};
  {5 y, h! Q! G7 ?6 u* K' i( `! u9 T, ]
static void led_dev_release(struct device *dev)
, ]1 o4 d' f/ D5 T4 i' Q{- [+ l% l  i; S0 g
};4 e3 m9 F) f5 B, T% f3 x! H
! ^4 h, y9 ?# l$ g5 O
static struct platform_device da850_evm_tl_leds_device = {
3 n7 {/ i5 W7 Y' M3 ^        .name                = "leds-gpio",4 e9 Q* \9 I' k+ N% ?
        .id                = 1,
% }# b- Y- ]' Y# f+ r        .dev = {, D9 F7 A4 i+ }
                .platform_data = &da850_evm_tl_leds_pdata,
$ `# {6 z0 S( Q. n, S9 O                .release = led_dev_release," e: M6 r4 q; F
        }8 M/ c8 w9 N* E# _7 Z
};
0 Q1 f4 v) H; w1 W$ t$ M# v) q% U; J! T0 `5 M, B  x0 k) R2 X
static int __init led_platform_init(void)
7 j3 Q8 s; y% P( S4 Z; j: t{% z7 }7 J+ U' B; K- w% }* u: K
        int ret;
) Y& F2 Z) x. M9 N, i#if 01 K- Q- t8 x1 J0 g0 B8 D4 T# _! n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: @7 H; A4 J$ `% p6 `' Z        if (ret)4 J- j! C4 ], P! q9 M' I8 j
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 l) s; C( ~  \4 X2 R* h& K                                "%d\n", ret);
& R6 a* g, x! a0 I$ i. ~( X#endif
0 t+ A0 G1 m( I; b5 q, G        ret = platform_device_register(&da850_evm_tl_leds_device);
; C: f5 M$ N2 P- r8 D: _        if (ret)& L! \) `# p* ?$ F% P  {( ?" J) _
                pr_warning("Could not register som GPIO expander LEDS");
- K  I, P1 X& P6 }' P9 K4 R        else# Q' D% w- l8 R2 K
                printk(KERN_INFO "LED register sucessful!\n");
/ ?, @5 g6 `/ p8 Y0 a: J- S: G% s# Y8 L& p4 ~0 p
        return ret;( ]3 m6 ~& x& c1 A
}
9 E+ W4 k7 G. B9 h& K! s  {$ {. E# F8 w6 y1 ]" \* u' |
static void __exit led_platform_exit(void)
& }+ p1 ~9 I4 v0 T8 A{+ c, f2 k; Q3 c5 y4 Z; P' O& z- o1 a
        platform_device_unregister(&da850_evm_tl_leds_device);
- d8 G9 ^4 m4 g1 l
  p+ w' p* J( M' N4 u( h5 Z$ g% s3 @        printk(KERN_INFO "LED unregister!\n");9 L0 G0 S. ]) a5 E$ N, m; L: i
}) {3 ?5 M6 r! F8 f7 ^  r& T

# `9 Y' K; L% G6 emodule_init(led_platform_init);' Z: w9 T4 i0 }# D. K; U
module_exit(led_platform_exit);
& Q, X7 P) o1 C0 K7 I
5 w- @" \2 @$ zMODULE_DESCRIPTION("Led platform driver");
6 s! O: t# }7 x. L% K. S8 yMODULE_AUTHOR("Tronlong");
+ H" T+ {5 H; zMODULE_LICENSE("GPL");5 d% V# o7 I  h9 w  b, l3 C
. h9 c& N; k( Z6 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-5 21:40 , Processed in 0.039328 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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