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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* p2 K! v; J! V, M) Z#include <linux/init.h>
# w+ C4 E4 Q6 j8 Z3 c  v. T#include <linux/module.h>
1 k! ?5 l! v% V4 O; `#include <linux/kernel.h>
  e5 F. j- R7 Q#include <linux/types.h>
9 d: S' j" e. p3 B1 W, g8 m( P6 h#include <linux/gpio.h>; r1 G7 O. L% k. K
#include <linux/leds.h>. v# v8 b8 t7 D- W: ]" l
#include <linux/platform_device.h>
# d, z9 U3 ]% e+ l4 E& U
* B. Z2 N+ ?2 N+ w#include <asm/mach-types.h>. |( J1 u( c) i4 i2 @" [9 D: l
#include <asm/mach/arch.h>( e( x8 F$ c4 [% @
#include <mach/da8xx.h>0 p" O5 N' @4 _: y
#include <mach/mux.h>
8 W1 q  p" C/ r* h. P4 I
' Y7 M0 r; m5 Q- n% o) D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); [  J1 V1 a# v' F3 g8 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 e0 b6 ~6 ^5 e3 h  w3 D8 C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 x2 ]0 I! z) g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 x8 z) J  l5 J% k; F6 o

- w: T7 {# a- R; N6 @/* assign the tl som board LED-GPIOs*/9 c7 l3 |# E- h0 V% }+ T- q; R
static const short da850_evm_tl_user_led_pins[] = {& ^1 u/ ~' ^0 g8 k4 m
        /* These pins are definition at <mach/mux.h> file */0 h9 a5 u5 J% ~( k0 ^  ~6 e. H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% O, ^$ ?1 b9 W, \* ~
        -1
# Q* i7 M. w* Z8 g0 k};& a; ~) M8 |  w4 f3 f) X: m

9 S7 _0 p) O7 h2 W9 Estatic struct gpio_led da850_evm_tl_leds[] = {
- H, P+ M' a. @0 t! E$ c+ X: T        {. e- y4 a/ O9 r9 K
                .active_low = 0,$ S2 ^& L# W+ p! A, M
                .gpio = DA850_USER_LED0,* }* I4 l  A* a
                .name = "user_led0",
/ p- |& ~1 w8 P+ E8 s" q                .default_trigger = "default-on",
( f& U' ^/ n1 _4 g        },/ q; A/ K6 Y0 T
        {
* L  M+ k; f1 |! x/ e% @                .active_low = 0," H) ]& X4 ?8 j- u
                .gpio = DA850_USER_LED1,& k" y; _5 H8 @3 T. D: w
                .name = "user_led1",: L  w  v* G8 u" s2 J; o4 |, q
                .default_trigger = "default-on",
3 c9 h* G, X6 Y& j" s        },
! n1 X9 w" b! s: W        {
0 m% Q5 ]8 C* t% I                .active_low = 0,2 @$ v5 K, I3 u# t" S! K
                .gpio = DA850_USER_LED2,
, i5 z% V& I9 ?                .name = "user_led2",5 o. S7 }7 B7 D
                .default_trigger = "default-on",; C0 b1 s5 p0 [& B5 x; n
        },0 C& e4 O  X: o0 e* v" k
        {
( y/ y$ [* |* ], S: o                .active_low = 0,. v) U; K: U9 r' [0 d. S( M! }
                .gpio = DA850_USER_LED3,
! b- I) |$ ?/ s                .name = "user_led3",
- ~" [+ u& l/ w                .default_trigger = "default-on",8 S' f( I+ q) x% [
        },
- W+ g7 M8 R6 \( A) q2 W};
3 V5 m' |5 d* g! B+ Y2 M: i! k+ g3 A" R, ^; Z3 [2 G+ z' I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  g* Z7 s8 D7 z7 K6 B6 d        .leds = da850_evm_tl_leds,
0 M- H  k' N: D        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ o( e" E7 W0 b) X/ O& f
};9 b6 |0 z) R4 F0 u; t% z% V% T, q
- P5 p2 X6 E2 [5 n! n3 u8 [" V) Q
static void led_dev_release(struct device *dev)8 b" a  p1 R5 I( H
{
& K( ~8 A  K  D! [' m};/ ^9 S4 g5 n( _1 I' q, l! }

" L8 d* E1 Q2 d  d1 Kstatic struct platform_device da850_evm_tl_leds_device = {
. a5 r$ y; S1 X6 w5 x        .name                = "leds-gpio",
, b4 L3 l4 M0 Y( q2 F. B$ x        .id                = 1,9 w- S' k! g# C, d; `$ D% n
        .dev = {
3 A1 x0 a7 |  |& U' A& ?9 j, E                .platform_data = &da850_evm_tl_leds_pdata,( E( J* M8 z* y$ C) l3 @
                .release = led_dev_release,7 d# _% y$ v% w: u. ?: ~
        }3 o6 f' p& s) e8 Q) K4 Q
};
& j1 I. m3 G" @: E* a, c2 k7 a3 P' h
static int __init led_platform_init(void)$ f2 `; {8 J5 W3 j" B& w& Y4 J2 A
{/ g" p! |7 I; R- s$ ^! j$ p- p
        int ret;6 x! i* |3 h% d6 U
#if 01 Z  f3 ~3 E# X9 Q0 l7 t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# a3 ?8 J$ K$ x3 V
        if (ret)
) _* |* W# ~& k) B3 [7 ]- E6 |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. E' X& ]9 t8 e! D! n8 k                                "%d\n", ret);$ ~- P  I/ ]2 k) R0 T* K" \9 g
#endif
" l$ M2 B$ @, J2 R) p- l& G5 W* T2 {        ret = platform_device_register(&da850_evm_tl_leds_device);4 W/ n7 f2 k' @6 \" H
        if (ret)
  a8 ~- `3 `5 H; l7 F# i) ^                pr_warning("Could not register som GPIO expander LEDS");
4 _7 g% K" o- p- R3 {6 X        else) I& Y3 L* ^  A; K7 ]' M& S
                printk(KERN_INFO "LED register sucessful!\n");! A. V, ^7 A# w: R# G; n3 }2 t: C; H. M
' F' T* }$ w; U" _* H+ \' O* \
        return ret;
7 _' J4 w- c3 ]$ U$ v, i}
: z2 f- `# Q2 o' h: x+ ]" ~* V+ K+ P1 s' C
static void __exit led_platform_exit(void)  R$ a% c6 Z$ t# @
{
7 ?, f2 O, m8 P$ |5 j        platform_device_unregister(&da850_evm_tl_leds_device);* Z& J, R' O" U5 }  m' |) G& ^2 w
% |! T0 }1 d5 m
        printk(KERN_INFO "LED unregister!\n");
8 T5 C! r2 ~4 [# l. M) a  O5 e}/ r: W* y% S9 Z' Q
4 _* n" g& y( K
module_init(led_platform_init);5 P+ x4 ]! G; h! L8 H, N
module_exit(led_platform_exit);% c6 `+ @: n: |$ T4 i) [
( _' m: ~- d- F# }
MODULE_DESCRIPTION("Led platform driver");  i8 k" x5 E5 X8 m% {9 k) n: r
MODULE_AUTHOR("Tronlong");, `3 P' W( ?( Y
MODULE_LICENSE("GPL");9 P$ B( z8 ^0 ]+ N% \; \/ U

( ], s$ h! h8 m: v- g9 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-13 16:10 , Processed in 0.037917 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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