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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( B: k1 f  c5 S9 d+ K& Y" E#include <linux/init.h>
6 {. O% a  r* q- H/ K7 O* b4 G#include <linux/module.h>0 G$ W" N" |3 G4 ^) W5 f/ u
#include <linux/kernel.h>
3 `+ B+ |6 ]2 k, b#include <linux/types.h>
  w; N0 c! D' ^3 Z4 p#include <linux/gpio.h>
' Y) P% l" J8 y9 _#include <linux/leds.h>
; m) M2 l) W% {% N8 c. B4 Y#include <linux/platform_device.h>
1 l6 [9 {+ f& |5 z( R/ Q. q
9 k/ F$ }, B9 L! \#include <asm/mach-types.h>6 F$ Y, ?& @1 I+ ]. ^0 j
#include <asm/mach/arch.h># q  o, r- I! m
#include <mach/da8xx.h>) p6 s; q3 K& W& v8 M
#include <mach/mux.h>" b7 W/ C1 a! \) }) F/ Z" m
7 H9 A3 l4 O- q- j) Y' h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 R* I: D2 H  @0 X5 w  q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- S% T6 |9 V" R0 W. n6 A  x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, b6 [, D) V, |( ]/ E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# N; o5 m9 \3 ]9 n

% v* e. k  B! X. _' l) R0 n9 B* N( v& X/* assign the tl som board LED-GPIOs*/
0 X/ M9 X- j8 d/ V! l' K# {: Rstatic const short da850_evm_tl_user_led_pins[] = {
; ~" {6 W9 O; w0 U0 p; C- @        /* These pins are definition at <mach/mux.h> file */
& ~" u4 i) y& k3 @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 X' M& j: G# [  y, ?6 ]! ~! I$ j        -1
* f2 \# u; W" u" Z: e  L7 n( B};
; W) c2 c4 b3 w& {" R9 o6 ^/ ]
0 g" `- E" n7 C* ^8 }  astatic struct gpio_led da850_evm_tl_leds[] = {9 Z, Z. K/ R3 ?
        {, I. C  Q. C% V0 _
                .active_low = 0,
! q( @5 i7 A; t- X                .gpio = DA850_USER_LED0,
& v7 U+ J+ Y, {  X+ A; p/ A                .name = "user_led0",
# x  _/ ~! _$ d8 U. F" G5 I/ g                .default_trigger = "default-on",
( h9 a! T4 r- H; o4 `* G+ H        },6 B. J( p. S8 M; o
        {
  L8 Q6 O- i8 H9 G2 h& i                .active_low = 0,) C' ?  [2 j6 C) w8 F; q" c
                .gpio = DA850_USER_LED1,# g8 N( K. _4 \+ @+ h) M% Q
                .name = "user_led1",
; N1 m; |+ r. m3 \, H8 {                .default_trigger = "default-on",
) b, u2 w) F, S$ ^        },
6 p8 K3 T+ _' t. k        {
4 W0 M, m" Y4 Z6 d$ q                .active_low = 0,
6 R. Q8 M/ j+ w1 j3 y6 w6 y                .gpio = DA850_USER_LED2,
2 _' x0 ^, X+ b3 K                .name = "user_led2",
2 i# f  v( `$ l1 ]                .default_trigger = "default-on",
8 m5 k$ K& P( V8 f( x/ p7 ~1 x        },
% S0 x4 L" r( U: [( E0 _        {4 N" f# L6 b$ B' x! g. [+ C' o/ L
                .active_low = 0,
* U* @( f2 f" o$ R1 `8 Z                .gpio = DA850_USER_LED3,
0 M% n- f- i0 y; k                .name = "user_led3",; H0 n, x" R" k' b! a7 I
                .default_trigger = "default-on",+ }+ n' b! ]" a) r6 j: E) ?
        },7 u, M* i8 Z0 f6 P3 s  s
};
- R9 h8 n1 r& D" {: b; w1 E" @0 v: w7 q7 V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  M0 {6 h( b( t- {9 x, [
        .leds = da850_evm_tl_leds,
( n( g, W5 X5 F" e$ n2 ^9 j' i1 u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 G5 `3 C3 F$ ^};& `0 `  o3 Z, }: V
8 [( c" p8 |" e8 {' |" x
static void led_dev_release(struct device *dev)( @7 ^* j, J% L
{4 Z# j  z/ {* h: n6 Q
};0 o& {& @0 a- z- O0 |8 N

9 ^7 W0 }0 t/ a) U/ Y. i# ~7 Qstatic struct platform_device da850_evm_tl_leds_device = {
" O2 z: L9 a3 l8 L        .name                = "leds-gpio",
; u1 i, z6 e! v        .id                = 1,# d! n8 j' }& m. e
        .dev = {) D& K, \1 b* [& _9 i+ z
                .platform_data = &da850_evm_tl_leds_pdata,- ]* n0 p! ?5 j; B3 y5 U
                .release = led_dev_release,2 w  e' d. R, `2 ^; u+ _, E% x6 H
        }
# S- L1 i( a4 i};
0 h! O: L( `/ _
% v" p: d. I3 q% {static int __init led_platform_init(void)) i6 A- H4 m9 N# d6 s& b6 x" h- L
{
  D% o% C2 u& W1 G& `# c) i- c7 ], S        int ret;1 R) h0 x0 J( k% ^3 S# b
#if 0
9 i# m) D. d# [* I4 y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 M9 z, u$ K) b/ m: U8 g        if (ret)
6 ^1 \6 \* ], O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 Q. n7 W' o. {0 x& t) y
                                "%d\n", ret);
. F. j, ^9 }: j0 }9 i4 B' @' x/ s* R#endif
5 e* U) G% r/ t: d2 N8 s- G# h        ret = platform_device_register(&da850_evm_tl_leds_device);
) m% Y: f& V* K        if (ret)
) b! C: @% w  w! D5 r0 r3 H                pr_warning("Could not register som GPIO expander LEDS");; I# s8 a; l. b, q+ v( i) S
        else2 d% S% y1 p1 @6 Q1 f7 t2 d
                printk(KERN_INFO "LED register sucessful!\n");
  R1 M  H0 t4 G  u" ?$ [
1 U9 _) z& w( t9 W# m5 q        return ret;
$ q  V: T0 F( v6 p. `}' n7 X1 @2 y: T- Z

9 V* T! ^( a2 I3 q& Sstatic void __exit led_platform_exit(void)/ s' f' m4 b* x0 t; E
{
6 u7 s0 e( n5 {; Q' v- _0 P' f7 J. `        platform_device_unregister(&da850_evm_tl_leds_device);3 t* d, S$ V4 w: r: G% z

! z" [: r5 e$ e# q4 _        printk(KERN_INFO "LED unregister!\n");, t3 Y9 N( G, T$ ?8 r
}6 Q1 i; r- W4 w, e# A# b

5 \# [* @# Y: m/ R* cmodule_init(led_platform_init);( y( I! I9 e% S; B9 ]
module_exit(led_platform_exit);
5 D% ~- `6 a9 P9 E9 e( V1 d. n' K1 k/ c. W- R
MODULE_DESCRIPTION("Led platform driver");
3 v" `3 T" J6 OMODULE_AUTHOR("Tronlong");. l3 `3 D6 p3 h, J
MODULE_LICENSE("GPL");9 N* P, q7 U( e: @/ p3 e% Y# @0 x2 e
% p8 v% H* M; H) a! ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 18:46 , Processed in 0.038043 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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