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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. M; o7 U( T# o7 Y1 d# A#include <linux/init.h>$ Q) q0 u# g6 _% p+ _( m
#include <linux/module.h>
3 {' v" F. O& x. H5 h#include <linux/kernel.h>
; h5 |1 i( b$ G6 Z) d#include <linux/types.h>. h: j$ b0 j- u8 a
#include <linux/gpio.h>
' i. d6 M# T# T/ j4 z& ^#include <linux/leds.h>
5 o( R1 b; y* X$ V5 q& `#include <linux/platform_device.h>" ^$ ^1 N4 N2 F( A/ E5 N& n) }! a4 Q

( P) A& f; s2 D/ }* f5 T" L#include <asm/mach-types.h>
$ g  z$ c, |; e4 h8 }#include <asm/mach/arch.h>* V& ^4 _* E' }4 g
#include <mach/da8xx.h>! ^- x2 I" o+ b7 u0 q$ x
#include <mach/mux.h>
/ e# @7 Y$ t. O% u3 D" \2 ^! m- P: O0 S+ ]  E( Y" f; U3 e; O1 ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* ~" Q( M( B. y! ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 w- R! p* j1 _/ G+ d- d9 s' y# y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); K8 O% b  o# X4 `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ X8 b8 P6 L2 S' M

% }3 N# A, ~1 D6 @4 O1 L/* assign the tl som board LED-GPIOs*/. _  F) {7 x" z; q6 Q2 t
static const short da850_evm_tl_user_led_pins[] = {0 d6 R3 E2 H% R* k8 V+ z% I3 B4 o
        /* These pins are definition at <mach/mux.h> file */! A* W8 V) f2 K0 X. L! W7 i; y2 P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  n% C: h4 [5 g" _# n4 R        -1; J, @8 h! w7 `1 p9 V4 j
};0 q7 m$ a, `/ [- W! j

- _2 r3 J0 d/ Tstatic struct gpio_led da850_evm_tl_leds[] = {& R3 u% A  p9 g! ]. X1 E
        {8 k* R, D$ c$ S9 U" `- \+ T9 V
                .active_low = 0,
% o) e) M) M8 Z% `                .gpio = DA850_USER_LED0,; q; m& s& p( D" M: Q" k& F* t! N
                .name = "user_led0",$ h* ^+ ^- n* e/ I  h
                .default_trigger = "default-on",8 d! U- g3 d3 W% }
        },
/ C' ^: ]5 t3 ^        {( }5 m/ X* E7 a& A2 g8 ?% V
                .active_low = 0,
+ `5 `8 q4 ^) B                .gpio = DA850_USER_LED1,. `. a5 r" b2 D4 p# s
                .name = "user_led1",
2 H" J( v$ S6 \5 l                .default_trigger = "default-on",. l% a7 R8 D2 u) B2 h, L/ h) [! D7 q4 j
        },2 D6 {6 T7 O# H9 ~8 Z
        {
) T7 B  E7 [4 x4 e7 }                .active_low = 0,# L5 m( Q$ ]) w- b
                .gpio = DA850_USER_LED2,% g; I+ S7 _. W
                .name = "user_led2",
: o4 |/ K/ q0 n  ^                .default_trigger = "default-on",
. Q4 K( f% K6 E( o( J5 l: E: x        },
, _( ~" D4 B+ ~! x. [        {( R9 p% \% e9 _. L
                .active_low = 0,1 z  O3 }" ]0 m- G1 @
                .gpio = DA850_USER_LED3,
  M% X, f, k+ k                .name = "user_led3",2 n9 |# n9 w  e
                .default_trigger = "default-on",
& ]5 H7 I2 @, k. r        },/ t: K6 m  }: p- C, |7 ~
};+ p1 e! k) G6 a/ |

+ z8 b" _, z0 A! Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ d- c" f- `' O) J" q# b
        .leds = da850_evm_tl_leds,; A/ o) c" K  z3 `
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ \" q5 E# e6 I, D# N  r
};
' V( Z4 X2 b: q* @2 d. U
* }  Y9 z; A3 Y$ r+ Q7 ]& hstatic void led_dev_release(struct device *dev)7 t2 k/ h, h5 X" a+ b( @! \6 w
{
2 Y7 {8 H6 _3 R6 b* W& S8 v7 w};( n& A0 U2 L* t
8 I- c( A7 c/ T
static struct platform_device da850_evm_tl_leds_device = {1 ]# B; L) E' v
        .name                = "leds-gpio",5 B9 u) f4 E% c4 S3 Y: I. p
        .id                = 1,' U( q# z: \3 e3 f4 s
        .dev = {
4 b+ J. q( L8 c+ |                .platform_data = &da850_evm_tl_leds_pdata,
" j& z( p0 o# m; j                .release = led_dev_release,
  X/ V( R5 \" O* a' S        }
$ ^0 Y6 `3 V& r; b! R1 d% G};
3 x: ]1 x8 {5 J3 S# m
& i7 S' h; L8 `' F' ^# s7 r# v- Fstatic int __init led_platform_init(void)  f- |. ?6 H6 e9 c) M
{- y- f* I7 v0 \3 a2 e0 r& K
        int ret;
9 f5 U2 {# w, m6 Y. o' i4 T#if 0+ X* ^' D: |" J: {8 K' a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! L6 m0 _- e9 w3 Y$ z+ @        if (ret)8 Y+ m& m' v' k' s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) ^5 A. y% |# f* `: W# \/ z                                "%d\n", ret);3 x! P. a. m* Q$ E
#endif
# s3 F# o; v% L9 n  y8 P        ret = platform_device_register(&da850_evm_tl_leds_device);
; p+ ?$ r$ {0 v2 H        if (ret)( w5 y9 E% |* M* q/ V
                pr_warning("Could not register som GPIO expander LEDS");
+ N0 |4 ^9 W& C  p/ u9 ~        else
& |  p7 ?$ v& a( ?, S6 h' `+ I                printk(KERN_INFO "LED register sucessful!\n");6 g) T, V7 I0 H# N  t

; p/ f; W$ e0 ~        return ret;
0 ]8 i) E, Z# E2 \}
2 [6 U5 J: C- r3 g3 Q4 ~( d2 t0 x1 w" B  E) \* i' k# n
static void __exit led_platform_exit(void)1 j7 d' O/ ~  w. Q# N+ D8 T7 v
{  A" b9 h; s4 ?
        platform_device_unregister(&da850_evm_tl_leds_device);% h2 u) G! v6 D% k

  _/ a! j- c6 H) |  ?0 ^7 C        printk(KERN_INFO "LED unregister!\n");: N" K$ W$ G, O- R& f( q0 W
}+ Z$ f' n; c+ v% q5 s: S$ I

7 s" t+ n( ]8 Z8 c+ T# Z- M$ Y) Wmodule_init(led_platform_init);
' Q8 ^% D2 E1 ~/ l7 w  p3 h& Kmodule_exit(led_platform_exit);+ V1 c4 {1 l7 N0 Z
4 d+ D0 Y/ a9 o* E2 R
MODULE_DESCRIPTION("Led platform driver");/ [8 Z( N$ G' n1 A0 H( f
MODULE_AUTHOR("Tronlong");
) A% {- a# v: G# a1 }2 \MODULE_LICENSE("GPL");( p% u9 }* t3 N. K0 s. C' A! T/ M
! e/ v$ x; G# Z! P; U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 21:21 , Processed in 0.037987 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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