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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ X: k/ b9 D, C
#include <linux/init.h>
- P" w! @. K4 n! v* a( n#include <linux/module.h># n9 I; g; W0 J3 Z  p/ |+ X
#include <linux/kernel.h>, |: s" J) P4 l& P6 v  U
#include <linux/types.h>
0 M6 x* ^) n9 M#include <linux/gpio.h>8 g; T1 C6 B2 V! X( f
#include <linux/leds.h>& [( i! o' p! d, _; h+ O+ t' {2 |
#include <linux/platform_device.h>
* E* i- L8 X8 V4 v! Z0 {% t  L( `4 |% ^
#include <asm/mach-types.h>
& R! m% p" b+ d# h#include <asm/mach/arch.h>
" s6 D6 l+ e3 ?2 e9 P# j#include <mach/da8xx.h>
7 @- \! U, ?; ]( m, d% B- o$ l! K0 F#include <mach/mux.h>
$ a# \4 A. `( r* b: L! ^5 H" c: I4 c; u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  |+ p, J( M' i( C#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 K% ^0 X, p0 O+ g  U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), M# w+ x% V9 W! Q6 I: v2 o) d7 h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ v. A$ d( Z# T1 m: J2 b5 y: H( Z% B( ?& C5 s' v: c/ H
/* assign the tl som board LED-GPIOs*/
# z  O( q9 `9 Fstatic const short da850_evm_tl_user_led_pins[] = {
- Z# s$ `5 \- B        /* These pins are definition at <mach/mux.h> file */
2 C; `# i  j) B6 \1 ^$ q( K2 D2 H3 }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* }* M' j; S( s. h) @8 T* S        -1
5 D: l+ [! W4 u' N};
& z! j/ u  k3 z' v
& f! I$ ?# L2 H% q! y  m$ B7 jstatic struct gpio_led da850_evm_tl_leds[] = {9 P: Z9 D6 O. v* e% Q4 p# ]
        {
( B' ]0 h: {0 U" ^                .active_low = 0,' b$ R2 Y# n9 \/ c! W( e6 |6 e
                .gpio = DA850_USER_LED0,
/ ?1 a  z2 _; M; A( \; a2 |                .name = "user_led0",
% Z8 r3 P9 H1 _! _9 p8 d                .default_trigger = "default-on",* W6 g& X( n' u0 n& e/ _0 {
        },
# j* H0 U  g; j) Y8 o" j        {
4 h2 I- L- a) T' h' X( B/ l3 h                .active_low = 0,
: I; T6 U% V9 v7 |# G                .gpio = DA850_USER_LED1,9 P1 m5 ]' Q3 L5 {
                .name = "user_led1",& z$ O, w6 w' i/ U
                .default_trigger = "default-on",
1 V5 q* ~- ~4 S5 t, z# |        },, A- R0 }8 |" ~% }0 c! l  K$ e% J
        {, M  f4 ^5 B, y0 [0 C
                .active_low = 0,
+ A% b' ]5 Z, p1 t5 F. f                .gpio = DA850_USER_LED2,
9 V  j$ I$ G! v5 b8 L& H4 H                .name = "user_led2",9 l: n* `3 m' h& o
                .default_trigger = "default-on",3 @1 [9 J* R* e) L" U/ T
        },+ M9 y/ H. r" \
        {- p- u1 n7 T3 \% r% S
                .active_low = 0,
$ R* w( i' L  |( Z                .gpio = DA850_USER_LED3,
; C2 E$ A! u8 }* q1 I9 t0 f                .name = "user_led3",5 O9 h# h0 ^  k5 g+ [: i
                .default_trigger = "default-on",
( G& c& t6 S5 N) V( ?/ X        },  o2 N3 q: N7 v! s" _2 {
};" H3 Q. A, s, H9 S
: S4 \6 F  X0 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; `" ~+ g' U* j6 l# z        .leds = da850_evm_tl_leds,# K" ~0 j) r2 ]# G4 X  O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' z/ O; ?$ G% z: R: w/ V0 q! T% Z};5 p6 ~5 r2 t4 e+ P, [) t# u4 E
$ n7 M8 y! s$ S* W9 J  P$ Q
static void led_dev_release(struct device *dev), `% N8 y5 M3 w
{3 f1 s" w  f, g' W5 V, x
};/ q( ^) \& f5 s" Q

5 h# `3 c& O9 Y# Lstatic struct platform_device da850_evm_tl_leds_device = {
% i, s+ Z, J) a2 h- I        .name                = "leds-gpio",
8 a1 ?% E7 N' t/ Y1 g        .id                = 1,) X1 z$ V' Q! ~5 A5 q" Y
        .dev = {2 [5 u- \+ w8 M6 o. R% {) k* y
                .platform_data = &da850_evm_tl_leds_pdata,
/ Y+ @' z, |: |4 [# g# Q% u3 C                .release = led_dev_release,
* R' T3 X6 s" v2 G$ X        }
! b9 V% C1 \: H3 A};
6 G# q. a/ k, G1 R
& E/ p* L4 Q3 W: O' bstatic int __init led_platform_init(void)
9 m* e' e) s0 L% W' Y6 R3 i3 t- {" D; P{
3 @' Y, |  W* ]. B0 _        int ret;
0 f6 X; F+ |" h) _#if 0# O* B2 k+ ], t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 @( [1 z9 a/ F/ H9 G        if (ret)( G1 `" U% l: r/ H, s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 z3 f) [" v6 p8 C  E0 a                                "%d\n", ret);
# h" R& g$ p; m, f6 U, D0 j#endif
9 q; Z9 p4 X$ ]0 @, t$ y        ret = platform_device_register(&da850_evm_tl_leds_device);
# b  E# l4 @) o$ Y  [2 m        if (ret)2 F! A% _% D) c  u4 {3 O
                pr_warning("Could not register som GPIO expander LEDS");
! d0 U' }6 I& |0 v! v        else; I7 x* s! \/ B* I% P  D
                printk(KERN_INFO "LED register sucessful!\n");. Y/ _; q/ t8 u9 R  m* C! A& O
4 E$ [3 R  _) R* I) ^, {
        return ret;$ d* R. T5 u( r7 T
}
% ]9 m' [& w" u# E" Z4 D# U/ ?+ O4 {! V
static void __exit led_platform_exit(void)$ q7 u' U( A7 ]2 G6 C6 a/ A2 {
{
8 y$ q7 l, }) @4 D) u" q: f        platform_device_unregister(&da850_evm_tl_leds_device);
5 S  T/ ^2 G. f! N) _; N: h* i" f" t$ }# S' i/ i2 F
        printk(KERN_INFO "LED unregister!\n");
8 B4 l5 `4 E( l/ ?2 U4 }* j+ L}5 V/ R- B3 A/ y$ w7 e7 ?& h
- x0 P9 n8 N' n% i5 A9 a5 B
module_init(led_platform_init);; \; X7 ~# S* o3 K! A7 y% o
module_exit(led_platform_exit);
9 B" G( q1 T7 b1 s% C1 s1 Q- G, \9 ]0 d+ |
MODULE_DESCRIPTION("Led platform driver");5 a3 d+ N- a% J3 x# F  T
MODULE_AUTHOR("Tronlong");
8 K8 N" u! s5 k# T3 yMODULE_LICENSE("GPL");
+ f+ Y" F+ O3 \: w! A0 p
$ ~" P' p$ }; C, h* u% s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 04:56 , Processed in 0.037499 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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