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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* S- s+ ^( @1 D# C4 H; R#include <linux/init.h>
" x: t" J/ G% Y( z& X3 q: [#include <linux/module.h>9 \+ W  ?  w; {; K7 J" p
#include <linux/kernel.h>
/ N- B: ?" `9 M" x#include <linux/types.h>
3 z) C  y" P2 {- e2 K) d#include <linux/gpio.h>- e% ?. q7 P  B. Y
#include <linux/leds.h>  {4 f5 y# t+ v: f# F- l
#include <linux/platform_device.h>
$ V: Q' c0 ?4 l+ D  Q" p
/ O) v% R0 F5 `& ~! a, b#include <asm/mach-types.h>/ @  Z1 [) `* m) b) e: {) t
#include <asm/mach/arch.h>
- y" s; F2 N: F4 z#include <mach/da8xx.h>
2 p# n7 k6 P% u$ j/ L#include <mach/mux.h>
+ r, `/ K, B% \0 E
6 ?! A+ B; Q/ {  Q( {$ K2 b8 z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( _7 C0 z) W) @2 m& u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 F) G" C# _1 z: r$ Z3 v9 q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 w6 _  Z: y/ l' O/ L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 T8 K% r; n9 W- r
/ t9 E  S3 O' i' q$ e/* assign the tl som board LED-GPIOs*/' m; [, z, _# e* W1 x$ E! {. U
static const short da850_evm_tl_user_led_pins[] = {
2 D- ^* x' I* K3 n$ c        /* These pins are definition at <mach/mux.h> file */
2 ^3 U  C- O7 ^5 F) z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( k7 Z& O& T# }* c9 s8 M! T
        -1, \' t5 b1 O) g: S2 `% [0 A
};4 U- z- D2 u% C. g2 ]
( m: Z/ w5 ?% c! P7 |
static struct gpio_led da850_evm_tl_leds[] = {
1 H" L6 t' t3 Q1 V% n: V        {4 W# ]7 N2 v' \0 A+ b
                .active_low = 0,
6 V$ `2 q" @% L$ H; g; V' z" f, q                .gpio = DA850_USER_LED0,
9 p: x6 i1 _; e  q+ v/ p% H                .name = "user_led0",
7 o. k- i0 R% ^; G" i                .default_trigger = "default-on",
2 G2 i# Z( T  W5 C3 B) I- J: A2 G        },0 x! Q9 P$ I6 ?  `8 z# G
        {
/ i5 h. L0 }9 y0 t, M                .active_low = 0,: D+ \/ s0 }$ w7 Z6 S! A0 o
                .gpio = DA850_USER_LED1,2 S5 h% k  ^% x/ i& N
                .name = "user_led1",! H+ q* c8 \# K! f
                .default_trigger = "default-on",
) y; |. b$ T1 |. I5 R, P        },5 u' r2 I, d4 o2 G: T
        {
* G  ~7 B/ C$ s4 \4 y1 q                .active_low = 0,
. T% _  }# M; A, V! M                .gpio = DA850_USER_LED2,! ]  g; w- X+ {) c2 j: K
                .name = "user_led2",
' j/ ~. U% p1 L2 A, m                .default_trigger = "default-on",
3 U' H5 N$ o; m6 ^6 S        },
( F8 X" C5 ]8 x        {
0 [% O+ O" C( a5 F" y                .active_low = 0,
; |+ W; V, c" u6 o, F* b! ?6 }                .gpio = DA850_USER_LED3,
- b$ D0 W* O" o                .name = "user_led3",
  C. D' l3 Y4 {( |& N7 {                .default_trigger = "default-on",
. Z( r# a; v# ~8 |0 D( @        },& |- A3 e& o! ]  a, s" [1 c
};
8 `5 @) z% s; y1 o' M  j. ~0 j; H4 `
, w" h; k2 R" z4 B) N1 W5 s2 mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 H) N6 q$ g8 e9 W        .leds = da850_evm_tl_leds,% j( @! O5 l( d/ R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 c# ^" p" i# L* N
};$ {; e# C* ~$ d  p
$ J8 Q/ {( i% f) H+ {& Z1 g
static void led_dev_release(struct device *dev)6 c; [) L; `+ N& _6 g1 c
{* R; A8 Q5 ^6 @5 {
};
8 d, `8 t) _& {; t, g* Q$ n
4 t( E5 W6 @' }" x8 pstatic struct platform_device da850_evm_tl_leds_device = {
% o: t2 ?" E: O* ^: X        .name                = "leds-gpio",5 v) a+ U' J1 p: b) g5 M! |
        .id                = 1,1 r  J+ J% C9 m; g: H& e5 @; Q
        .dev = {
/ v/ Z! W/ a1 @* ~                .platform_data = &da850_evm_tl_leds_pdata,% C* f5 F$ Y" j
                .release = led_dev_release,
8 v6 h& T3 L. a        }
; i' J7 O7 h( t, J};% o+ ~" Z* F* o  {1 O8 F5 X( j4 s9 ^

+ B2 L1 K3 j$ A$ [static int __init led_platform_init(void)
/ T3 e- H, u" G( `2 n( i4 N{5 K7 {7 X# m$ I, `% Y: J$ x  s
        int ret;8 y: p( N4 E5 O& T
#if 0- R% Z) {3 F+ k/ @$ {6 N
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 f& u8 e! D- Y2 Z+ ~- A
        if (ret)4 G: f) L* B# ~  E1 F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ ~4 ^( E# H7 D, Q                                "%d\n", ret);
# O& y$ H9 g4 _#endif
2 X) v8 K; a, V; u* S4 X        ret = platform_device_register(&da850_evm_tl_leds_device);
" r! Z: n! N0 n2 r& Z        if (ret)( D/ r! H, P! t3 k' Y
                pr_warning("Could not register som GPIO expander LEDS");, U, J5 |4 D3 j; Q9 p; ~, B
        else; B4 V5 d3 f+ I
                printk(KERN_INFO "LED register sucessful!\n");% A# b2 i$ m6 @, P' V7 u; T; f
* r2 A/ ~4 o% L$ r  H8 M/ F+ F7 j
        return ret;" U5 l. y" \7 c$ j6 B! m( l& G2 s
}
; a0 ]% I5 h# [# f$ F" t: I( V/ x2 J
8 B) m+ w+ d( _9 n  U* }. Sstatic void __exit led_platform_exit(void)
3 M; O$ M6 @. Y8 W! U! o! i9 |{
1 o2 P) v: q0 R. q+ w$ W        platform_device_unregister(&da850_evm_tl_leds_device);
* Q$ I( ^; T6 p
5 U4 E2 f7 n2 {- t- |0 C" t        printk(KERN_INFO "LED unregister!\n");7 T1 a. R" }0 P2 y; G
}+ ?" i  @% s- H
* O. V6 F! e; V& I
module_init(led_platform_init);" j( f9 c% F( {# U6 H0 m$ B
module_exit(led_platform_exit);
- A' x% Y5 x- p* M9 }" v: [
3 R$ d' R! }1 _2 }+ A/ _9 Q' VMODULE_DESCRIPTION("Led platform driver");! A% s8 |: \- R- A( P9 A
MODULE_AUTHOR("Tronlong");" Q% K. [* x! A; }& N
MODULE_LICENSE("GPL");8 V# ~" A, ^0 M# I+ k
7 R0 n& z7 R! g* E& j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 03:39 , Processed in 0.037063 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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