程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 x: L: E; j% R#include <linux/init.h>
# {8 h& R, m1 }5 f- L, E#include <linux/module.h>; F% L% i( Y. N$ d* z6 N3 G3 W" e( e
#include <linux/kernel.h>
7 Y8 J: P3 u, o. ?#include <linux/types.h>
! W- R, z! a1 I, Z#include <linux/gpio.h>
; _$ S2 a5 a$ e+ ?# }#include <linux/leds.h>
; r" {/ Y  ~# t3 G$ A#include <linux/platform_device.h>
4 S3 v0 B5 G3 c( ~( D) U9 I- c) _+ i: S* |! d
#include <asm/mach-types.h>
" }  I- N8 |- m& F6 U  y: p& l#include <asm/mach/arch.h>  P6 d, M# g0 J; [4 T
#include <mach/da8xx.h># T7 M# F  B2 K$ @6 G4 h" ~
#include <mach/mux.h>
2 m: N' w7 d9 B4 w& A0 m$ g! Z
5 ]0 m* |% ?# n# J6 w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 F0 w" k$ p8 I  `- d) G3 V: P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' X) t" F6 O3 ]% H- c1 |9 L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( j3 M9 ^  n8 H4 ^" q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ h3 l' G" m6 U" W
5 Z  A" }8 f: v+ g/* assign the tl som board LED-GPIOs*/) e& {6 z9 q8 z6 r+ @' Y+ E1 p
static const short da850_evm_tl_user_led_pins[] = {9 H( J$ P  j8 K6 ^+ v4 ?( f
        /* These pins are definition at <mach/mux.h> file */
- z& |4 s& a4 |( P: M8 s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, e0 U; ~+ k: }. u
        -1( r/ G- G5 ^' P
};1 E% _: L. A$ I" Q- U
2 p( U% q5 i; j: p
static struct gpio_led da850_evm_tl_leds[] = {
  D5 X3 h7 H1 z4 T9 S        {; y7 E4 J& ~+ v! [; u& c
                .active_low = 0,7 d) A* p+ R! M4 e
                .gpio = DA850_USER_LED0,
. {' ?: M2 O# a                .name = "user_led0",
1 n8 o$ K8 H! a                .default_trigger = "default-on",
2 h( q: N6 l* z% `6 V; _9 q        },
  E! E3 S, ~: a, E8 ?        {/ D# q. _: X  m8 p4 J
                .active_low = 0,
& U0 a; T' Y9 T# _" w                .gpio = DA850_USER_LED1,8 a, g) ?3 |) c3 F5 H6 {% d$ X
                .name = "user_led1",
! `' k  `6 A" K8 h! f) s                .default_trigger = "default-on",
5 @: ]+ h/ }/ t; i9 M5 e        },
$ Q" u8 Y% t( m- O4 Q: \$ w, b8 Q4 g        {
: U, K* |* q# e, n. N( r                .active_low = 0,
' {4 m6 ~! u; _4 w! {% n3 D                .gpio = DA850_USER_LED2,
# B% `- i# a4 `                .name = "user_led2",
1 l! [$ X* H  F5 Z1 M7 |/ e                .default_trigger = "default-on",
/ i; F/ c$ G5 x4 p' P$ O& e2 M        },2 D3 L+ \% m. g2 q7 l# k
        {
: @# h. U& b( k; n# P4 v                .active_low = 0,
' d  Y1 |0 b, {7 b6 ~3 c+ a" W                .gpio = DA850_USER_LED3,
* v0 t: Y( j5 h7 h2 t9 q1 r% `( ?: z                .name = "user_led3",5 P* p# [# q& f" ?0 _" X( Y
                .default_trigger = "default-on",
* q3 a& u/ g# w, d! ]* V        },4 d, i. f* ]+ P
};/ ?  S7 V( J. P$ H( g5 l
/ |! ?) r. y  b9 ?0 f3 G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  }6 o/ d4 o/ A. W
        .leds = da850_evm_tl_leds,3 U" `# r1 }$ ]/ r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 N& n+ n$ g: L/ I# ?  T* L
};3 P- g' }0 [  ~
) F" P7 C1 e) C( x0 q/ T$ t
static void led_dev_release(struct device *dev)! r; H; U) Z7 b% G' a2 e
{$ s5 d5 Q0 H5 G
};
# L% @2 B$ v. ~3 ^* j5 k3 }+ b+ h1 i9 Q) p% ^) V+ u4 W
static struct platform_device da850_evm_tl_leds_device = {
7 z, z8 [$ @) ^. M5 s" d0 m8 f        .name                = "leds-gpio",
% Y; I- p# c1 H( ?        .id                = 1,
3 g/ g& V5 p7 Y# \        .dev = {
  J! `/ ~0 W6 R+ r# S                .platform_data = &da850_evm_tl_leds_pdata,/ {+ s* O5 Z1 G: o$ u  g! [! T
                .release = led_dev_release,1 j+ ]' X# m- b, n6 S
        }
+ n5 u- p! B6 e, r' q$ {- m};; P( B0 E: z! \- u  \2 i: h" W
6 I/ s2 Q( ^6 C4 k
static int __init led_platform_init(void)- l- A8 h; w) E9 b
{, d4 i: y/ ~; ]& x4 P* X
        int ret;
0 y8 A2 d" Z2 o, ~#if 0
' p, n3 d' |* V) x  q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, f% d8 g; I# d( G+ u9 i/ N/ B+ k6 Y2 n
        if (ret)
" {$ z6 {1 m& ^/ n4 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 L4 P: G: W6 U0 s% L                                "%d\n", ret);
8 f, y# d2 Z1 n#endif. Z, T" N/ ~) H$ |
        ret = platform_device_register(&da850_evm_tl_leds_device);
. ]( P' \/ _" s1 G( ~6 `: V        if (ret)
% z+ k/ q3 T/ T8 Q/ p' w7 y$ U8 R                pr_warning("Could not register som GPIO expander LEDS");
3 X) Q3 \$ l0 A7 `' k7 f, i        else
- s/ R7 S  O! D9 q4 N1 B                printk(KERN_INFO "LED register sucessful!\n");
) N6 Q# m) v6 e4 M+ W! \# \% {# g$ o5 x: {1 ]& g* b2 _
        return ret;
. G3 n. a% Q; i- s7 z( s0 u}+ |& t, i0 {) W% ?1 b
0 g4 X+ `  n  W( T# G: k4 k3 t
static void __exit led_platform_exit(void)* Z, c! Q' d3 V. a( M7 K
{
! r3 m& }7 h( q8 {5 `        platform_device_unregister(&da850_evm_tl_leds_device);/ f, y3 \) J% f0 v
/ B% ?% o5 p* y8 U  i
        printk(KERN_INFO "LED unregister!\n");
' L+ O% |, u0 u$ {8 I, N; m}
9 C% F$ X0 O4 Y' ]# H: M: u3 E/ b  q4 k  D4 C! u/ r
module_init(led_platform_init);" V" d% y2 u4 b
module_exit(led_platform_exit);
9 W- q& F0 k" B4 r
- w% X0 J9 T* X/ r- CMODULE_DESCRIPTION("Led platform driver");
7 x+ m* y, \& d  H5 r* rMODULE_AUTHOR("Tronlong");
* m# E. ?; J1 FMODULE_LICENSE("GPL");- o4 \: t  e( n/ z2 y
* ^2 i, P0 i, c6 |1 K4 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 07:46 , Processed in 0.040346 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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