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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; a! Q8 @# s2 m3 b, O& u: [, [
#include <linux/init.h>
5 \5 A& d( L/ }. S* X: X' M#include <linux/module.h>
5 ^: [! i! ?, x5 m% s' R! ?; D7 a#include <linux/kernel.h>2 c* ?5 ^/ g+ b; l6 @
#include <linux/types.h>
4 M2 W. D+ |. a5 P/ [#include <linux/gpio.h>
- \9 V, X# s$ Z* k#include <linux/leds.h>
* O- E8 \, o4 @# ~! u- }# j% H#include <linux/platform_device.h>: E4 [- z. z6 s
5 S, \& E, ]9 \/ m
#include <asm/mach-types.h>: i2 b+ I; G5 z( H+ t- D; a$ C; E
#include <asm/mach/arch.h>9 T* k/ E( t/ P7 z
#include <mach/da8xx.h>
  k- [" _7 _; b- Y6 }  \#include <mach/mux.h>
: d0 ~' d! E8 X( M
* D9 O1 T! Q0 d  _( }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 `- F9 K$ v+ i7 G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). Q" ~# z: s& j0 {' r3 s7 I/ p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ {3 j2 z/ R4 Y5 y4 @6 m9 w, C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" a' Y5 P, a7 E- `1 q
8 X. c* z* F4 ~' B" ^$ o: O/* assign the tl som board LED-GPIOs*/
/ i2 n  x  A2 c6 qstatic const short da850_evm_tl_user_led_pins[] = {5 ~- M) m& n- K( c3 b: v
        /* These pins are definition at <mach/mux.h> file */. ]) D( H3 l% J& {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& v4 a# n2 ?. z  v1 W- N! a        -1
& Z1 f/ S4 X: p! Q7 F8 I; _1 J};* z/ C5 j# b/ c1 ^2 {9 L
& o+ u' h/ U7 k" E5 S8 M; z+ F3 o
static struct gpio_led da850_evm_tl_leds[] = {% ^( e7 O0 `% d6 S" t+ D" r
        {0 |( h' [. [) n
                .active_low = 0,
  W' S+ A' }& Z1 h/ r                .gpio = DA850_USER_LED0,+ I. V3 h6 p4 }2 ]& G
                .name = "user_led0",
( O6 ~) f8 n& l) E& O, o                .default_trigger = "default-on",
# U/ N  s' q5 A) D4 _& a6 l        },) s* l8 ]6 n. @4 V/ s
        {
( ^. D1 l8 G$ E8 y$ H                .active_low = 0,
$ ^* J7 E- t6 X+ B& A6 C) q3 G# d                .gpio = DA850_USER_LED1,/ p; v9 ~* {/ x( j8 U, N
                .name = "user_led1",5 W) u* Y$ ^- \4 [# g9 Y
                .default_trigger = "default-on",3 Y/ b$ ~* ^4 C
        },
; s; ~0 w/ @/ ^2 }8 D1 s        {
; I% B& }  a$ }  d- u- d- L6 P                .active_low = 0,
/ B5 a' V4 `5 T+ s$ W                .gpio = DA850_USER_LED2,
- |2 Y+ @4 V* i1 y                .name = "user_led2",; W* E3 S1 F/ ?8 w! ^
                .default_trigger = "default-on",. S( n+ h8 c! d
        },
, `# h8 a8 e+ L2 }3 `1 g3 b$ r        {
/ j4 N: k( L9 X" t$ C4 X9 H" M% C! D' A                .active_low = 0,
. o4 p. z$ X$ b3 s" Z; T                .gpio = DA850_USER_LED3,* r! J. y. c' E+ \3 w* `
                .name = "user_led3",
$ ^; p( ^- \% G5 g                .default_trigger = "default-on",( s0 p4 @$ D8 v
        },  l3 |% N; O9 x* K, X1 j
};
7 C& @. a2 P! m# X
7 ?+ \4 n8 l5 X% e& {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 r/ D# `! f* f" O        .leds = da850_evm_tl_leds,1 g: s4 p" ~7 u- x7 G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: ~% ]0 c. e7 H' r+ M3 c# ~0 ^
};7 G% P' V# q$ r
4 ]. a/ f$ O' B1 W
static void led_dev_release(struct device *dev)
0 Q6 o& z, l) P8 d{3 ?! ~; z0 `% A! n( N1 v& G2 }; Y
};( h5 y3 C, X/ w& m" h# G

+ p  Z) j* b7 T3 cstatic struct platform_device da850_evm_tl_leds_device = {
; \9 r8 a; g2 Z1 [  n        .name                = "leds-gpio",
) s! d4 C  U( t, ?        .id                = 1,
! S2 y+ s( B1 ]7 Z        .dev = {9 n7 {8 L( v( s" ?' s
                .platform_data = &da850_evm_tl_leds_pdata,
7 f9 ~  M% @2 i* L; Q3 S) ]- W( x                .release = led_dev_release,0 P! a2 Z+ l) X
        }; |: A2 \. q0 v7 {/ `
};3 X+ ]8 P1 b/ z5 t" @
$ C, ~$ ^5 `" K8 M# v- z8 m/ [
static int __init led_platform_init(void)
5 a- ?1 e% j, x/ H# `  d: G, Q# |{
7 G: n* E' a, w4 J7 r        int ret;
- h( k1 C4 _6 L! @#if 0# L9 ]4 y) M# H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ D) @( h6 J! G( p) l        if (ret)
7 K5 b: D8 _9 h6 ~8 O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ B4 b) B) S& E7 J  P% ^! `. O1 I                                "%d\n", ret);
; G7 H, {5 G0 Q1 Y#endif
1 t& G5 \0 E7 A6 _2 s. `0 H7 C6 y        ret = platform_device_register(&da850_evm_tl_leds_device);9 [( M% [! L: \
        if (ret)
0 L3 @1 U: _$ w                pr_warning("Could not register som GPIO expander LEDS");, E: J6 h% O( u
        else' i  V5 d3 B% h8 J2 Q
                printk(KERN_INFO "LED register sucessful!\n");- }- H# j! Q/ J  }& G0 u

) e+ M6 `' A2 }$ x" v. \) y        return ret;
* }! O! P$ o4 q( e( x( V}! t2 F0 n# @$ M" g
5 |! `* U# K9 r$ M  ^
static void __exit led_platform_exit(void)" Q" q! ]/ A( M, N) E' A3 G
{
  ?7 M7 M& l; l9 F/ m        platform_device_unregister(&da850_evm_tl_leds_device);
: ?- k  i0 c+ L$ ~# `1 q" c- ^* k4 c$ v( b; H& N" v
        printk(KERN_INFO "LED unregister!\n");
0 y& z, y7 B$ I$ U% M}1 E7 m* k! N' n) ]( u

; e! ]& R1 ?2 @) {1 u* ~  Tmodule_init(led_platform_init);. w! l6 h' Z% x2 N; ?
module_exit(led_platform_exit);4 [  t% Y+ G5 E

2 q4 W' d& ^7 M* ~! r' s( W- x" }MODULE_DESCRIPTION("Led platform driver");0 r" W3 P. f6 d1 T5 C3 v
MODULE_AUTHOR("Tronlong");
" L- |, a+ C1 i/ {% DMODULE_LICENSE("GPL");
8 z2 t  y3 v4 Y$ g
8 j" O  `+ T: y# q; Y$ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 23:29 , Processed in 0.039148 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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