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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 k, t8 B0 A- K" G6 v$ t/ Q$ g; M( _
#include <linux/init.h>2 {, B/ F4 q& N; {
#include <linux/module.h>
5 B; g- S7 e' G#include <linux/kernel.h>) y2 L  u+ I2 c7 ~( `3 d$ R/ S
#include <linux/types.h>
' h, m' q; F& w#include <linux/gpio.h>
( C2 F$ |+ o# G/ ~3 f1 ]#include <linux/leds.h>+ [( K% \+ S8 I; ?
#include <linux/platform_device.h>
+ m; j' Q% D( b) s0 p1 d+ j' |; V2 {' E
#include <asm/mach-types.h>) D3 C' r0 O2 o% [5 y5 D/ V: ~
#include <asm/mach/arch.h>
  a4 n: K0 a6 R, j#include <mach/da8xx.h>
" w3 E% b/ K3 v  R. q; S#include <mach/mux.h>
5 R6 X* T8 p* ?  {# I% G# j
8 z) b4 W' [! I+ Q: U#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 [7 v* h  x" u' D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 L$ g) X7 k: |7 Y- S% K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# ^/ I: g6 A7 o" L. {2 T1 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, @- E4 `7 @3 @8 m- X2 Y  p; A( I, G9 p3 e# t
/* assign the tl som board LED-GPIOs*/5 \! D$ x: L3 N8 k( J& m
static const short da850_evm_tl_user_led_pins[] = {: i" E4 Y" @; U/ s, }# J4 |
        /* These pins are definition at <mach/mux.h> file */4 u+ T1 Q! t" e/ ?- J9 L) t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; F* B2 L( E' P7 V8 a$ g) \0 V: Z        -1
$ y" v2 c8 D5 k+ u' v};$ K/ E- _" L: {% O- z
  O3 p! ~9 d7 q; \! V% x. [
static struct gpio_led da850_evm_tl_leds[] = {
9 I% [8 C7 Y! X4 A$ ]; R        {
- r  H+ h0 t: ^# H% V* S/ i                .active_low = 0,) T1 u/ |/ C) x1 [3 k8 a: A2 \
                .gpio = DA850_USER_LED0,
4 a" d( [' E) x& @                .name = "user_led0",5 V9 L: V2 k* |3 @3 }( D6 z
                .default_trigger = "default-on",
1 F! d% `" t! w) p7 c$ p0 P        },5 g; B7 u3 q9 k5 @* w/ X1 u" {2 _
        {
( Z( S+ D7 `5 e/ T                .active_low = 0,
- H, I9 J" |3 t7 L                .gpio = DA850_USER_LED1,4 P, ?" i2 B( k- R+ K  y8 ~
                .name = "user_led1",
" Y+ w  g9 W9 G+ {; ^) @                .default_trigger = "default-on",! @# O# N' J' i; v, S2 Q1 `; A
        },& x( s  x' }! ]. P* Q. _6 }9 b5 ?
        {, `: p' ?6 _7 f
                .active_low = 0,
8 [9 s: E. \& I# ^                .gpio = DA850_USER_LED2,
5 F( ~# d$ C, R                .name = "user_led2",
& a, I4 E5 W) S; `; H% D                .default_trigger = "default-on",, E- F$ C: G- K. U. \' I4 s
        },6 J. h+ a1 B5 }9 ~: k
        {2 M7 }5 G  x: q* X3 p$ H' @( ?0 G$ D
                .active_low = 0,
8 |5 X9 I; F3 e# g                .gpio = DA850_USER_LED3,* r" e: `' _( u, p. c
                .name = "user_led3",
- F( D' |' ^, Z' d  V$ p; A                .default_trigger = "default-on"," d) ~% t8 v9 q+ {9 X8 N
        },9 l; S/ Q; w3 A8 p
};
' \0 G  R: r: Z, N2 ?9 j1 X
4 r2 ?, v! N# [7 h' a. Y9 Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 Z3 q1 F# j! w        .leds = da850_evm_tl_leds,
2 ^8 m  ]' F8 v  M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- u% |! f* J" {: ~, E; I};
* Z& X$ v/ H3 V1 c( Y, o; B& G% P
  E8 w; T6 ^9 s  w/ l1 Fstatic void led_dev_release(struct device *dev)5 y5 H3 n: H9 n
{
9 k" N  T( ]/ F8 S4 j# x# _9 ^4 {};
, s, j/ b0 Z! |7 p8 X! _, r7 ^3 a) T/ @0 b) a1 }! T0 f
static struct platform_device da850_evm_tl_leds_device = {4 G3 K) z" E" p' u8 f7 P+ s
        .name                = "leds-gpio",
/ ]& ~- \8 F  E3 P0 k" T) ^; @/ X* R, S        .id                = 1,4 t1 F# K  {9 L1 j, |# q) J
        .dev = {) y, {  u- E/ w. V; b) u' Q
                .platform_data = &da850_evm_tl_leds_pdata,1 o: W1 a/ `7 J6 }+ _, u
                .release = led_dev_release,
* ]7 }6 W( u3 X* Z        }
5 A+ r+ k" J+ e' R0 I0 U};
0 v* A, X4 y' V1 r. v9 V* v, z/ y* b; @5 _( n
static int __init led_platform_init(void); i% Z9 G/ c0 {3 j  s
{
; S$ f" k9 T4 j+ s, A* p7 A: H        int ret;* I6 K3 D1 G: C- H: k; Z! C
#if 0
$ |- d9 f! ~, V6 t6 S4 N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ k; h% s6 D5 T( y! D        if (ret)- F& Z% U7 D' M$ X9 s% _  `1 T7 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", D# U6 d6 n: @5 u( Y' x  e- Y
                                "%d\n", ret);8 J- L6 J( u" z3 Q+ ^
#endif9 X6 b. D& c) {, B# ?2 F5 u9 e
        ret = platform_device_register(&da850_evm_tl_leds_device);
* e5 {4 e% @# \- o- b' v7 v) G5 j        if (ret)
5 J" I$ @" [. c3 l& v6 g                pr_warning("Could not register som GPIO expander LEDS");) b9 y) V. M( A! A1 t
        else3 |% P# V; |! q# t" Q$ ]; R, p" X
                printk(KERN_INFO "LED register sucessful!\n");7 j- q9 K! h: {& `0 {; B; ^8 P

7 y- w" v% I8 y. ~        return ret;
- b) r' p/ P  N; ]+ l- A  b- ~}, z0 Y3 M) T$ }6 ~, v0 _/ z2 U

& S, H3 f6 m, C1 O0 L0 astatic void __exit led_platform_exit(void)
1 z2 E6 G4 d$ g. ~$ K5 d+ ^* G+ E{$ s% ]6 K! d1 g8 X& [  Z& u" P
        platform_device_unregister(&da850_evm_tl_leds_device);
/ v5 [; w' }$ s7 k! u0 d; m
) U7 V& R" w. r% i        printk(KERN_INFO "LED unregister!\n");
4 p( p9 Y  z6 w" Q! |% r$ i1 T}
! [  M. X1 O2 B' V0 z- ?5 l
' ?; k8 p4 w. i. V0 Zmodule_init(led_platform_init);) R1 a- M1 q+ M: _  f
module_exit(led_platform_exit);
, e" ]6 S8 L  u) m' q, K/ z* V$ {0 u9 ]4 I6 S6 L
MODULE_DESCRIPTION("Led platform driver");
$ q+ r( D+ v, L) ?. W) j1 [MODULE_AUTHOR("Tronlong");
. R) b% y4 k0 nMODULE_LICENSE("GPL");3 ^5 Z5 h* {& f3 X
# c9 e; e: N( [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 14:00 , Processed in 0.045295 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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