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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 n% |" E& C0 W& J6 u5 A8 `3 U) I& P#include <linux/init.h>' M- f8 U) f! Y! |# p1 B
#include <linux/module.h>6 P- f+ _% F# t& u/ J
#include <linux/kernel.h>
* G  a4 O, c  Y; I2 v6 [( R8 |4 u( A#include <linux/types.h>
, s# `' _. @6 X1 s8 |#include <linux/gpio.h>
9 ]- h1 t6 e" t& x#include <linux/leds.h>
! Z* Q( k' R7 h& ^0 \# Q#include <linux/platform_device.h>$ S# @9 U9 \7 ~* i9 V
$ e/ V1 b% l% H: u+ D  W$ L
#include <asm/mach-types.h>  n7 D/ W+ J7 K% o
#include <asm/mach/arch.h>) I) r* @% l0 p) x" f
#include <mach/da8xx.h>+ ~; o0 c- X2 d
#include <mach/mux.h>
7 N8 o- u8 \. O* z* n1 Q5 Q! t4 t1 W# c  O0 N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. {" ^! I0 a$ N9 z+ Y9 `# @' p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" N8 I1 v/ ~. p. h% ?! B' |3 j+ P$ P. b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% {' k# v( N1 t& A7 G' o
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( O3 X  l- K7 u
( f0 N: F6 N7 W0 Q/* assign the tl som board LED-GPIOs*/2 b8 X  e3 i( s; J
static const short da850_evm_tl_user_led_pins[] = {
) v, H. K8 G# A2 M' U# D        /* These pins are definition at <mach/mux.h> file */6 _' H# T  c: {% T# E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 K$ u- e4 N' B1 n& R        -1$ K6 B% d. [/ }' b0 J, E6 b
};+ j& u& t. b& D: H) w+ M
  B, D! F+ C3 O: _. N
static struct gpio_led da850_evm_tl_leds[] = {
! p; y2 s5 m" E1 b$ O0 v$ @        {
; x: I' O1 T. Q: e6 {                .active_low = 0,) v5 u, I  F# R% m: V
                .gpio = DA850_USER_LED0,
$ `2 [2 N5 q0 N, D                .name = "user_led0",
& M0 [- e! h, I" D' I4 q                .default_trigger = "default-on",8 a4 p8 J, J. U( d
        },  m9 N% s% ]( t0 q  J" g2 W
        {/ T& i2 v3 ?1 [, w5 t) R
                .active_low = 0,
" d+ x0 u6 C! P, F9 L4 X9 R$ X$ n                .gpio = DA850_USER_LED1,
; D+ E& c" E$ T7 w0 i$ z4 l, T                .name = "user_led1",
5 x$ Y2 z1 `! P, z+ O; E5 O                .default_trigger = "default-on",
4 H0 l6 ^* t' {& h# t& Z( c        },5 }. a- h8 e6 v0 S
        {
! h- F3 o1 i( _$ I                .active_low = 0,' O$ n# Q( p# {9 C+ E# W
                .gpio = DA850_USER_LED2,# r; m) B- O/ Z5 y0 R) {
                .name = "user_led2",/ N+ T; y+ [. O7 |, }" x5 [% N
                .default_trigger = "default-on",( s5 Q- a4 u7 X9 C) R
        },
1 H( `  S& x3 A* [3 Q5 g        {
& m0 N/ j7 z* R5 f% D0 x1 r. @                .active_low = 0,  u7 U3 n, N- Z5 }: l# B6 T0 L
                .gpio = DA850_USER_LED3,
1 e, ], D# [9 I2 x# i                .name = "user_led3",% Q" a4 d: M3 q+ @0 B
                .default_trigger = "default-on",* v. }. x7 T6 o3 G' K3 G8 r  p0 F
        },- L7 N8 i1 x, p( S
};
0 s# S, L' U( T+ V( h- s
% e, ]# @; N; `8 H' N  o1 Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' X* F3 f, l/ ^; D
        .leds = da850_evm_tl_leds,
- |) f6 D% q+ r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: S* t- M6 `2 b3 p2 n6 j
};
8 ^3 l+ K5 z+ q2 C0 R3 I
1 U2 D# ~- v$ I2 t& Q, U; ?6 k. U/ {static void led_dev_release(struct device *dev)4 f# p; m2 ^* U( y
{
: U2 `  P6 _1 d$ R: {: H: H};
+ i! U7 f( f# G9 J; i! h9 U3 I' \4 p5 `* p3 Q8 D+ n) f9 N
static struct platform_device da850_evm_tl_leds_device = {
% j) Q5 ~( {+ Z, n( I        .name                = "leds-gpio",+ {$ p7 M2 X" v8 V# M/ u
        .id                = 1,( M% X( A( ~! @/ c- T
        .dev = {6 _; ]6 o( n5 \1 v( u
                .platform_data = &da850_evm_tl_leds_pdata,
+ N" k% A& p# ]/ T% |                .release = led_dev_release,$ Z, |5 s1 Y) n' x: L9 m" H
        }
3 l  B$ g5 T2 U4 p, r};
6 `2 f2 G+ x/ K/ C! j* X9 |$ I- x
6 E8 [$ n, c1 O  Sstatic int __init led_platform_init(void)
; L( o) h7 g1 }& ]{+ A  V0 L1 c/ u: @& B0 d
        int ret;
) K# D4 I$ A4 n8 B1 |/ ]#if 0
1 m/ Z9 ]9 h- Y/ T5 c  M8 w4 z; c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 A+ @: M' }5 \; u
        if (ret)& o% z/ K+ `- S: G$ Z3 M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": a; }4 [, ~) v: s9 i7 X: ]  ~" O
                                "%d\n", ret);$ D% f& O* W* {* X2 }! P4 ^8 D/ A, j
#endif5 r4 L0 M* u  S9 C! M7 ?
        ret = platform_device_register(&da850_evm_tl_leds_device);1 K, M) V* a% Q
        if (ret)0 O; T6 j+ o1 Y! z" t5 K
                pr_warning("Could not register som GPIO expander LEDS");
) S5 h8 A5 o2 x) K( j! k* `        else
! H# f5 a/ U$ W* D* h" W! @                printk(KERN_INFO "LED register sucessful!\n");3 Q6 U" T5 ]4 [: c% z, n& a& v! v2 [

- s0 b  Y4 n5 t( @6 U+ V        return ret;
8 P; L, z! m  L3 b}! S  y' h: d: {0 d# n* G  \

$ ]! N* I& s( M" Ystatic void __exit led_platform_exit(void)3 y, w0 _2 C, v3 a7 v
{
) K$ X5 @, O% }  d7 E+ u        platform_device_unregister(&da850_evm_tl_leds_device);
" s  ?8 b. Y$ n; W  Q; E! N  X9 k! {5 t& m$ ?, E$ ]
        printk(KERN_INFO "LED unregister!\n");
2 P4 w& \- c) j0 X& @}# m1 z* ]2 t. q3 ]( h

; W8 O# Y: I. U, b- f6 n: h, l7 Vmodule_init(led_platform_init);4 F4 h$ \# x7 R( ^! Z" ?
module_exit(led_platform_exit);
8 c& B& p, ^4 _6 B5 b8 j4 p7 \/ @5 i' _
MODULE_DESCRIPTION("Led platform driver");5 w. r5 A$ D3 z1 t# D1 h9 m
MODULE_AUTHOR("Tronlong");3 R* f) o2 m% Y
MODULE_LICENSE("GPL");2 w1 u& z, z9 d( V5 w$ k8 O+ P' d$ e$ U
3 f2 f9 A9 Q( _4 _6 C. L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-4 22:28 , Processed in 0.044016 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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