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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" K  D3 B: U* i5 B  @  B& G) l- x
#include <linux/init.h>. D3 J. Q5 i$ P6 T0 n7 u
#include <linux/module.h>
2 p8 t. J( z. D, V* F# V  V6 k#include <linux/kernel.h>% S; m2 e0 W  _- Z- j
#include <linux/types.h>
- v  Y# L8 C3 h4 {" T#include <linux/gpio.h>
; v( I$ |9 V& V7 \1 u0 Q  r#include <linux/leds.h>8 {0 v" W" @- T$ t/ s
#include <linux/platform_device.h>
$ Q% L$ {+ _( `1 D, o; A, I  x3 ]% n" n& e; J
#include <asm/mach-types.h>
5 I( f7 u9 `$ v* M+ n5 D, G/ ^( Y* M#include <asm/mach/arch.h>3 h( b5 Q" F, L0 c$ y
#include <mach/da8xx.h>
5 c5 C2 ]0 y% J8 e#include <mach/mux.h>
4 I6 r% g4 r. C  M# D. v
( z1 b' @8 D0 i* A" Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 |4 Z2 b% o) o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 h. |8 |4 a0 F' ?1 s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  a1 l. W9 ^0 h1 O* u% \8 P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) g' a7 g  S0 h' Y

3 n. ]1 M- y, q' _- F/* assign the tl som board LED-GPIOs*/
/ k# b$ c' M! t- A) wstatic const short da850_evm_tl_user_led_pins[] = {
0 _! ~. U" v+ W& g) b& y        /* These pins are definition at <mach/mux.h> file */
7 {$ {8 ~/ m! F- P2 y9 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 g/ s+ I5 Z* P9 y" ?* t8 a% \
        -1% r3 g: h0 \+ t; h6 O3 L' _
};
& C3 ^7 S& q6 T! Y
4 V! c$ S5 ^% k% u8 istatic struct gpio_led da850_evm_tl_leds[] = {
% P8 ~$ M7 V' Z! W5 j$ ?- `9 M        {
( j' X' q1 o, ]$ p, ^) {  R0 A$ b: \                .active_low = 0,4 ^* J) z$ H( s) X9 D
                .gpio = DA850_USER_LED0,8 `1 p' d' j& P0 o( J, e
                .name = "user_led0"," P- U: p; J0 \* p" Y* I
                .default_trigger = "default-on",: n' P! g3 H" H5 [- r5 K3 L( T% Q
        },- `; M* c% i2 V8 P; b
        {# c- u* n! l6 D! ]3 R' t6 S, h
                .active_low = 0,' Y3 Q: L. c7 o" F9 u* i6 p
                .gpio = DA850_USER_LED1,
3 y- t% ]# q4 b6 z                .name = "user_led1",
/ I% I$ K2 H, R                .default_trigger = "default-on",
( x- G- h* m, m9 H$ i        },
  U9 Z7 c1 X; H        {
' ~. m% ^# U* b                .active_low = 0,: B" R' m4 }8 S5 E/ E) D8 Q: d
                .gpio = DA850_USER_LED2,
# |" t8 b: _% m9 K                .name = "user_led2",
1 C2 t" y2 ]/ K% d2 R3 D2 K" g                .default_trigger = "default-on",
! K& n3 I! N4 y' N4 u( _& W2 g        },
8 l' K7 i9 @* p& J9 Z4 O        {0 F$ [4 f5 r+ n* k' Z8 ~
                .active_low = 0,1 n/ H" v0 U+ O' v# n  b; \9 r
                .gpio = DA850_USER_LED3,* c3 H  O1 P3 F0 P# i
                .name = "user_led3",
. \; ]0 ~0 M* h4 I( z$ T                .default_trigger = "default-on",3 Z: f5 b2 \9 C) i: z/ X
        },
  V0 o) F2 f4 l! B3 V! {};
6 m$ L! F5 L% z9 i. q4 j5 |; [$ H9 G+ H- l7 T: Q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  s5 _+ I, f8 c% n4 l+ J. ~; ]
        .leds = da850_evm_tl_leds,
+ x( D, |: Q5 f& Z8 m' K1 `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' @  Y1 H8 M, o+ ^( q};
9 p4 |' ]7 I% C) \+ }
% L6 L' n- }, Q( D4 T3 kstatic void led_dev_release(struct device *dev)  v! I3 i- r( o# k; L) d
{  h1 _5 K+ u. h# u3 w7 K' A/ E! ?
};7 k1 k8 P8 i+ v; Y; Y. D( ~

* \) P; F' a9 W3 \& tstatic struct platform_device da850_evm_tl_leds_device = {& ?# E, _" x4 a1 L6 h6 k1 Q
        .name                = "leds-gpio",
, Z4 j& i' ]( [& R        .id                = 1,
2 c2 _7 C5 `# ~  S        .dev = {* [; m; A8 d  ^4 g" x* ?7 U( {7 m
                .platform_data = &da850_evm_tl_leds_pdata,4 c$ u4 E4 }. V% C
                .release = led_dev_release,
# ]2 |! K  }$ Z7 }- v4 ~! z        }
% j+ T5 t1 T; S6 A6 R" {};0 X: }8 r$ q" f/ q
, a) V5 \: x/ B4 _5 U* D% O: z! H
static int __init led_platform_init(void)6 j/ u# M8 }$ t2 d
{; l" i4 E% J& @3 c0 U& d2 M
        int ret;
1 C# f( @9 G% R0 ~#if 0
" [/ A& {# t5 ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 T2 X$ U' _0 k  s3 C$ H
        if (ret): t- e8 Z0 q: G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! e- j1 B5 R7 a( a+ q5 k
                                "%d\n", ret);4 J  e4 j8 X* A; L. Z# p# [
#endif
: S4 K7 z# n, Y) w5 s2 m5 m        ret = platform_device_register(&da850_evm_tl_leds_device);8 f+ s' i* C5 f- N' {2 m% a
        if (ret)
6 C& s# s# j) t3 p( `4 E/ k  ~7 G5 `                pr_warning("Could not register som GPIO expander LEDS");+ Z8 q* V4 w- r* C* D
        else
: b# a3 Y! A- H6 g                printk(KERN_INFO "LED register sucessful!\n");2 Z" ^- J6 Y9 b+ T

) v4 K! d3 m: U) }2 |0 h6 ]        return ret;) Z5 U  E0 I$ s* R) Y8 I5 @
}
8 `) x( L* ?2 w+ ~3 V9 q5 J  ~3 A& l! s" x4 t1 w
static void __exit led_platform_exit(void)1 z, X' z2 b/ M7 \4 m+ N. R) p1 R
{
/ x- n4 M7 P' f9 D        platform_device_unregister(&da850_evm_tl_leds_device);5 K  z2 ]7 c- c9 E. H

/ l! e* g  g5 o& M0 }- l        printk(KERN_INFO "LED unregister!\n");+ B1 C3 |/ ?: B/ h( h
}8 {+ [4 t6 n  L" l8 b* B
6 t3 C$ F4 Y. w9 H- Q" Q
module_init(led_platform_init);
4 K3 ~1 P! a3 U( H" Nmodule_exit(led_platform_exit);
! f7 J2 I2 X  V% s; L* N0 z! S& C' @6 n  W# q
MODULE_DESCRIPTION("Led platform driver");7 }) A) J( y7 L+ x2 h. N2 J
MODULE_AUTHOR("Tronlong");
, D0 @) ?9 t: [  [" w1 yMODULE_LICENSE("GPL");- ^$ B* ]# n) @
# [) U. |$ p, C6 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 19:04 , Processed in 0.039397 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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