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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 \/ W+ I& n$ |" u/ p#include <linux/init.h>. f4 d" f8 O( ~3 u7 l. R
#include <linux/module.h>
: S- e# Y' F7 g% N6 ?2 Q/ T+ w#include <linux/kernel.h>
1 v5 P% p% Y6 K% N1 B! z4 E% c#include <linux/types.h>
' K5 {& v! {& Z* R7 I: m! v5 ]#include <linux/gpio.h>1 j+ h0 @6 e) X# {9 a
#include <linux/leds.h>
; O; R; {6 f5 P: N% F#include <linux/platform_device.h>  J- h: j$ Q9 r& }

8 [2 N8 h* B9 [# Q5 o5 r: K) k: |#include <asm/mach-types.h>9 y$ \7 i! L7 T) ^+ b5 R
#include <asm/mach/arch.h>
+ S0 f- U  G6 R! u4 M- j1 h#include <mach/da8xx.h>. `5 e6 a4 x) b% s- [5 C
#include <mach/mux.h>
; ?! M$ K7 Q2 b8 P
4 g3 T0 Y# K; C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' k$ R& l; F: v- t8 J4 J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 Q6 G! ]0 j! |' B5 v2 O( j2 c& K9 B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 Z/ X- i. L( ?2 |1 D) W% g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): A; r$ }" u+ Y
( L# p* b7 e- s( r$ t
/* assign the tl som board LED-GPIOs*/& `; j+ O, W' E) x% A. u7 m
static const short da850_evm_tl_user_led_pins[] = {
( B7 B. H/ y2 ?; x$ D        /* These pins are definition at <mach/mux.h> file */
( }$ e5 H9 S* j! s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) s  z* _5 k& Z  q- S# m, W        -1
% |2 n6 s3 g2 i* `9 \# b9 X* y};1 L: E; `  ~& m

( s  l* `; x% Rstatic struct gpio_led da850_evm_tl_leds[] = {* [0 r+ s6 }# K' f) }
        {+ o, l& W7 x* o( i! D& l
                .active_low = 0,; g+ [8 U% _3 t; L2 G1 Z7 @- }
                .gpio = DA850_USER_LED0,
$ M" z: ?& P& H- S' J) A( [/ O                .name = "user_led0",
4 V. [/ u) p+ f5 \- T                .default_trigger = "default-on",
! W: P0 [1 }8 l( P9 d  H        },
& u* L9 N4 ?& [8 O! _1 }        {
6 o& [' K2 t6 t: ^8 c. m                .active_low = 0,3 V- l0 o' Y6 H
                .gpio = DA850_USER_LED1,
/ A+ y( A$ p+ H4 s% f0 V                .name = "user_led1",
, m- q& g% c0 e* r* `  e% v                .default_trigger = "default-on",* r" J5 l  O2 X* U  A' i) o, E3 M* y
        },
" ^) B. U- {! T, o% `        {9 b# ^6 _* J0 z, g$ J6 D, k$ S9 }
                .active_low = 0,
  K7 _% L2 ~# H0 k, w. S9 Q8 X                .gpio = DA850_USER_LED2,# X4 G) F8 v$ q' J( [1 [
                .name = "user_led2",
8 P7 f) ]( a1 C+ s                .default_trigger = "default-on",
& o$ K8 j6 x$ R+ w        },
- i' E  D# ^  b: v+ C        {8 _# J  Q7 H& E/ O) z$ {$ d7 d8 z
                .active_low = 0,. o8 j$ R/ q" `3 H4 Y
                .gpio = DA850_USER_LED3,
2 O- R: o& ^. F  x5 T/ z& h                .name = "user_led3",1 C& h/ H" P  p( V& b
                .default_trigger = "default-on",) M! j) m* C4 L& Z4 P
        },8 ]5 q- i+ T/ m5 Y
};
$ O4 G: q3 D6 L  E. h3 x
' {0 V2 }: j# K. Y. Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. g4 V+ b8 i1 p) [) P        .leds = da850_evm_tl_leds,
+ u4 E& v; l" n( }( k. v' G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 f* e+ \( i) F+ x) \6 x* e};9 H  g  [/ @9 k# i
( I) A6 t, T" I% `
static void led_dev_release(struct device *dev)3 Q4 I1 [9 U7 V, v' W
{
; D' ]! R# Q1 ]6 Z};. i5 [- K1 v; S: A* p
) z! v; `6 m4 D/ R
static struct platform_device da850_evm_tl_leds_device = {
4 Q/ [# U& B; r" ~        .name                = "leds-gpio",/ D3 U7 Q7 b  X$ `9 G
        .id                = 1,
* F% |( ?; S; N        .dev = {
" l, `. H+ }* L: ]* d  d                .platform_data = &da850_evm_tl_leds_pdata,
' q, b# q7 Y  Z$ w7 |0 V" t& c                .release = led_dev_release,: n8 k1 K$ \# I5 g
        }8 u8 }# Y, e/ B6 L% e
};3 N% P3 _" v, }/ l* ]5 O

! ^+ c3 l" d% Q& m+ kstatic int __init led_platform_init(void)
" A- S# |# C& Q" f. q' V. j' f{4 Y& Y) `) `" ]0 t
        int ret;
( U& t( D3 `: Z#if 0; L& h, I1 T* M0 a/ ]$ @4 N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- B7 z  y: j8 |4 {; Z; F
        if (ret)
( e+ V4 z6 t  b( U2 E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 U: B; ]! W- ]                                "%d\n", ret);
: m8 N$ C$ ?) J#endif/ F! }7 G% W: u( }
        ret = platform_device_register(&da850_evm_tl_leds_device);/ s; w+ l8 |' E
        if (ret); f3 ?7 C3 R/ [1 f: ]
                pr_warning("Could not register som GPIO expander LEDS");  }$ e4 H! v5 U* L. X1 J
        else, m; E- v! A; m2 J
                printk(KERN_INFO "LED register sucessful!\n");( n* k. u8 k# i! q. f! ?( ]
5 g* e# _2 \( _, v
        return ret;
# s  D% b5 x$ f! ]2 E$ s8 f! Z! B9 J}
9 u% \, x. k5 q- F2 e- S/ j( j2 f7 ?+ X/ H# k3 w) j  t
static void __exit led_platform_exit(void)$ b, T- _2 ~6 A6 @7 b
{8 i. E8 W! W) o+ Z
        platform_device_unregister(&da850_evm_tl_leds_device);" K" A. F! w3 ?) [9 R" g
; `& I( e, p9 P; Z% [, }  p! \$ e
        printk(KERN_INFO "LED unregister!\n");. w+ ^& _/ I% q: V: P
}
" D8 T' p7 n1 }) l9 Y+ T, i
+ |% d6 D* ~  w, v; rmodule_init(led_platform_init);# h2 _; n4 W; B' {/ g
module_exit(led_platform_exit);
% n& @7 y2 Y0 x& C8 U  F
9 Q+ @; x/ F1 t. N0 ?& iMODULE_DESCRIPTION("Led platform driver");
2 {% Q% }" x+ ]5 _MODULE_AUTHOR("Tronlong");
' T3 V$ d8 u3 M! R9 cMODULE_LICENSE("GPL");
3 s1 ~* O. E, k' i. v7 Q& V" p$ P; f& r1 z6 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-5 23:08 , Processed in 0.036533 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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