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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- L( c- X3 i& _% e% s" b/ [# u& \#include <linux/init.h>& C0 a% s+ N. W* I
#include <linux/module.h>
0 _4 E) Y& c  K) v0 l" Z0 j#include <linux/kernel.h>
% T2 T; O9 Y# Q: S3 Z+ o#include <linux/types.h>
# Z& s- c: k; ]) h+ ^#include <linux/gpio.h>
. S+ k* |" A$ h3 q) g#include <linux/leds.h>, l+ |0 `% U. c) i
#include <linux/platform_device.h>
5 b6 K. w( \4 D" v+ P5 K2 L
. [. k, i$ J6 w4 o0 n# f9 Y( c#include <asm/mach-types.h>) P2 R2 s$ M  V5 H
#include <asm/mach/arch.h>
. Y. q0 E8 ^3 A. j2 f& {, w% S#include <mach/da8xx.h>% e4 z" u$ E: X8 ?0 T$ E
#include <mach/mux.h>  Z% h0 e4 z. e6 s7 R. \9 u/ D

0 |+ d% s" n# K& j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ m( G/ F0 ~3 g5 ^) B4 }$ P' `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), n- a0 l' q" O7 r8 r3 ^$ p1 r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) o: _" b6 m/ v( |; y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! A7 f5 T6 N7 X3 x) O3 q
4 u4 \2 w0 W6 v# o: f6 [7 \0 {/* assign the tl som board LED-GPIOs*/& o& }& S: |" p+ X( j6 K
static const short da850_evm_tl_user_led_pins[] = {
" e  m& a0 |8 [; n1 h        /* These pins are definition at <mach/mux.h> file */
, b6 a/ b" ?: f, B8 i# Z" v1 M( r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; [3 x2 V, h4 A2 \: I
        -1
% h4 i# G. ]* y4 p6 q/ e5 c4 s};
% ]+ L5 E1 @; U9 @) _
: ?5 Y0 j  c+ ~: z- }7 Lstatic struct gpio_led da850_evm_tl_leds[] = {2 V& U; c2 W4 M
        {9 s* A* G3 Y0 L# m5 c+ c" H% M+ U
                .active_low = 0,$ M4 v& j+ j9 M4 q" `- D
                .gpio = DA850_USER_LED0,
6 G- I0 ?6 o* `                .name = "user_led0",
/ G9 G% i* T, S/ a/ b# |7 {                .default_trigger = "default-on",
9 ~! o; h  s* B9 i: J; b  u% E        },8 O2 _7 q6 W* ~1 j3 h, ~
        {& j' Z( _+ ^2 ]6 [
                .active_low = 0,) _; y  n3 `3 a# N' `% v# \
                .gpio = DA850_USER_LED1,
2 u9 L/ o$ S( _, n                .name = "user_led1",
* `, y& p1 d0 H+ R) a+ m) c8 V                .default_trigger = "default-on",0 E. ?( n( B% T2 c9 I( M) @
        },# G8 I5 P; B; }' L& ^% }
        {
3 e9 I: S3 i; t/ z7 y1 |: [0 U                .active_low = 0,
1 P/ A* S9 E) i7 k0 s2 G: m                .gpio = DA850_USER_LED2,! d" e  u2 ]  I7 `5 D
                .name = "user_led2",/ z7 x) v0 ]6 w* t; j0 E
                .default_trigger = "default-on",' u, t! p1 ~: M4 T& s% Q6 x+ C
        },
/ V3 f3 z; R8 Q) ^' [        {
' k. U/ b9 T8 O' I                .active_low = 0,% C; N% z7 g$ I
                .gpio = DA850_USER_LED3,6 p1 i3 y9 Q* h
                .name = "user_led3",- j  l$ @0 O4 u' I0 k
                .default_trigger = "default-on",' K9 r/ F$ Y( R
        },
( Q2 Q1 x- c$ @# X};
! t$ }% E5 `& l  Y8 A. k* d0 r, Q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) Z8 w/ R% B4 q$ w2 y) b* j
        .leds = da850_evm_tl_leds,2 `; _$ D/ j! t. w! k) D: Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 v, w. ^0 d+ _};
/ d% `, a) \* O* K- }' v' C8 m& V& p+ Y0 Z$ k" r6 Z( Z
static void led_dev_release(struct device *dev)
8 l& o7 L% ]' z+ d5 P, ^{5 w/ ~  i" c) t) t
};
' L4 P* J2 {+ c) |, Y  v: ^6 J3 J/ h$ _+ n
static struct platform_device da850_evm_tl_leds_device = {3 j, j$ q5 {# U1 @
        .name                = "leds-gpio",* v) H  c# x3 n$ A6 b  R
        .id                = 1,! e7 s; q/ M7 [; o& ~3 E  q$ J
        .dev = {
1 ~0 \  V# t8 m2 o0 s0 ?, }                .platform_data = &da850_evm_tl_leds_pdata,
+ o0 z+ J+ L. s: `$ w- |8 O1 n                .release = led_dev_release,
& w4 N) X9 Y- Y- K  I2 t% m        }2 A! R  G) E( `3 t
};
0 b" N" J$ U; {7 V! f6 c  J2 R' y& l3 l/ {8 K- E# `2 n8 u
static int __init led_platform_init(void)
( _0 U" o& x- C  k8 @* @! o" w2 T) x{% M7 x: W/ \' e9 Z2 p; b
        int ret;$ T5 |" \9 u& a; @# s
#if 06 }+ |" G/ @- @7 K- o1 H* }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& a8 f5 G0 c+ y  Z8 ~        if (ret)
. {3 V2 |( }& A% ^; C: a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ P& U1 R+ G2 ]* X$ ?0 D8 U- A4 D  K
                                "%d\n", ret);
+ e4 k+ w, I- @' P  p- R& q. a#endif
$ o* r. A4 Z$ E% `- n1 n3 F  m/ j        ret = platform_device_register(&da850_evm_tl_leds_device);4 L4 y" e: ]4 G5 [: r& |. E  i
        if (ret)% \3 A# j! U7 X' Y& q" t% }
                pr_warning("Could not register som GPIO expander LEDS");
0 K# w6 G+ t* E& e# h9 }/ P        else
) \- f4 A5 y" ^- h. b+ [  n, M                printk(KERN_INFO "LED register sucessful!\n");
; ^7 l- e' M- S
9 u* z  ?6 k* ]+ V$ x        return ret;
) _6 \/ l7 C$ _}% G7 u( Q3 o/ V8 u+ i
  I* s* j& \' M; P
static void __exit led_platform_exit(void)5 y) i( m: j4 n
{
# o' W& m/ U( |1 R3 m        platform_device_unregister(&da850_evm_tl_leds_device);/ K& \" B; Q7 P/ U  v

- E" c6 A* B# ]) _/ ?& k$ d. p        printk(KERN_INFO "LED unregister!\n");% s/ w3 K( @7 j6 A, q3 L4 {! B
}( ]; Q( }) q5 x! N1 o8 V+ \; G

! e- A  g( A' V6 Umodule_init(led_platform_init);. `) u  r9 X! O+ s; ?
module_exit(led_platform_exit);
. k$ M' i9 P0 e$ ^& e
1 P/ N2 R7 U8 zMODULE_DESCRIPTION("Led platform driver");
6 K" e: L: b) r- @MODULE_AUTHOR("Tronlong");& O1 M/ c$ z! ^9 k/ A
MODULE_LICENSE("GPL");
6 ]  M$ M3 m) E! D- r
, r# \( u+ m. q  I8 l: B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 03:11 , Processed in 0.040136 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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