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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! T' `9 q# {& T3 g9 E
#include <linux/init.h>
% o6 x. R6 S! i' r) k% n#include <linux/module.h>
6 i& t" Z6 @5 W#include <linux/kernel.h>
9 ]/ \. C3 C1 a; m  B3 [#include <linux/types.h>7 y  f; x* T9 F% U
#include <linux/gpio.h>; e. q. s8 _4 E$ ^$ ]( Y" d
#include <linux/leds.h>
( X3 U$ e  }1 A$ B#include <linux/platform_device.h>
! P$ J6 Q% @( j. o- R
" p' D8 \+ G) G7 O# l#include <asm/mach-types.h>+ Y; f% U2 f8 \1 T9 F$ t8 {
#include <asm/mach/arch.h>
" u* v% w5 B4 l, A" T/ c$ @9 \#include <mach/da8xx.h>( H6 c' Q% W7 x) o9 M
#include <mach/mux.h>. r0 B9 y6 C2 J5 E8 ~* ?  z, W+ }8 \
0 {1 @. X9 Z7 V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# v: E% F% O7 l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). ]. R) I! @( x* C' @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); U" c9 n; |! R. x/ D% l* j+ y$ m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 n4 u9 d1 _0 [5 H7 C9 L$ p5 u& g9 l) F1 z( F: c2 O
/* assign the tl som board LED-GPIOs*/
: M+ U+ c+ L; l6 Zstatic const short da850_evm_tl_user_led_pins[] = {' s2 K" J  K& d
        /* These pins are definition at <mach/mux.h> file */
% f" E9 Q# k9 t+ P, m; l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# }8 B4 G2 P# q) X
        -11 \1 B$ b. Y! n
};
- ]5 B  m  Y7 ^9 C* j
( `3 I; J+ t9 ?/ {5 dstatic struct gpio_led da850_evm_tl_leds[] = {7 [/ w+ z- Z  h8 j6 v4 g0 k4 L8 d
        {7 d* p, J8 u& ^' x7 R
                .active_low = 0,7 q+ o! v1 @. T
                .gpio = DA850_USER_LED0," E7 h* Z: e# o% H. ^: J
                .name = "user_led0",) @3 B$ s5 g) r
                .default_trigger = "default-on",
4 m) C8 M0 A0 K        },
/ }4 ?, L! D" y, L9 K) }8 \) k3 S        {
& b0 O' S  O: F9 `  M' b' p7 y                .active_low = 0,
1 m) p9 G9 t# k# D2 X* ~                .gpio = DA850_USER_LED1,+ q4 M5 O: L9 @! @
                .name = "user_led1",, H0 r! X4 w; J; W* ?0 S  k3 h
                .default_trigger = "default-on",, I2 W4 v3 Y7 {  U
        },+ Z, r- k7 e5 p* [7 T& t/ \
        {; F/ Y. m: P% t7 P6 M
                .active_low = 0,7 x- H# f; c, \  ~8 Z
                .gpio = DA850_USER_LED2,
) E+ a0 N) ^! E, y; B8 }                .name = "user_led2",1 ^6 ?& k; {/ R0 B- @4 N
                .default_trigger = "default-on",
6 \* v2 ]/ u5 o+ ~/ i5 H1 J        },
, H6 C' u/ Y- M) F1 d- N( g        {
( A- X9 K( q4 @% v! `" m, U' _                .active_low = 0,5 S: H1 m7 q4 G+ x5 \2 y& g/ G
                .gpio = DA850_USER_LED3,+ t9 V, O3 Q% u" e7 x, e
                .name = "user_led3",* B, g  t: ~) I' C2 q
                .default_trigger = "default-on",
1 X8 A5 u4 E' Z% s; X& r        },
& Q* J9 S# w7 p8 ]* {% Q- G};- y& b+ U" L+ h: j  H
& M! E! B7 u$ @( c$ F: M& \$ T) }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 X: J* u6 J: h5 S6 L0 ~: t' Z        .leds = da850_evm_tl_leds,4 y* u* i; S. C' [6 K/ q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* x. A: V2 c& i; {/ o: S" o) K
};. T# a  y& Z+ f. |5 C  H. \

- n, w! @5 b& `( i; Rstatic void led_dev_release(struct device *dev)- w; A' L; D- i  U& s+ P
{
. t! M! G0 P0 c};4 v2 y  I2 ^+ i& t7 f

9 H4 l! Y# p- w  [# v9 p/ [' Zstatic struct platform_device da850_evm_tl_leds_device = {8 J( r( Z  e" o
        .name                = "leds-gpio",
+ G1 Y/ B1 \& h8 L! A& L( }% r) G        .id                = 1,4 q& E) t9 t9 Y' L% b
        .dev = {
3 v" H1 S3 }( S& I9 R; S8 r5 q, n                .platform_data = &da850_evm_tl_leds_pdata,
' x1 I. K& i( x5 a1 I( d                .release = led_dev_release,
4 Q: Q/ m7 E+ M1 j# E; k        }
- V8 U3 V1 U3 o. r' u/ w};" l' ~& S' Y& y  z8 ^6 j3 r" _
6 ~) C0 o9 T- ?5 f, ~' L& ~
static int __init led_platform_init(void)
- E5 z, a7 o6 L  d; A{" @  y9 d# o# F: a: ~+ k. |
        int ret;. D( r' T3 d2 G$ M. A1 x* q5 H, s5 I# g
#if 02 P6 p4 J3 }8 P5 g! x6 r5 p# C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 O. e$ Q! _/ \* }; C        if (ret)
8 p6 s2 D% J6 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ c* k) U- T. O- b7 Y. \                                "%d\n", ret);
4 L: L+ @3 s; X1 S( l6 d. `6 M#endif% Q& y' z" K" w+ z0 N
        ret = platform_device_register(&da850_evm_tl_leds_device);( Y8 B9 R) y+ P, c: o% j' F. g
        if (ret)
! J" j  T" w! V9 {' @0 _9 b3 ~                pr_warning("Could not register som GPIO expander LEDS");
; q0 Q% E/ U3 K% a: u$ p) v        else
; z5 c( g& M1 K$ e  k6 o                printk(KERN_INFO "LED register sucessful!\n");
5 P. S8 M; R) i. n( n3 t
& W  r; _* J, i0 n6 h, `        return ret;1 i9 ]9 J* F3 p$ I) j
}
/ s- u# A$ x$ e1 }
: ^# S( @" \/ P8 I! n  ^7 hstatic void __exit led_platform_exit(void)
& y+ m" X' m+ V6 F! ?4 Q1 |{
) W' [! H' H* `  A: G, X1 R        platform_device_unregister(&da850_evm_tl_leds_device);/ b, \- m4 ^  y0 G+ j# V: I
; ~! o9 _" t0 g' v6 U  Q$ G  @
        printk(KERN_INFO "LED unregister!\n");
4 @* S2 p( B* W}
( B* V. I9 r" M- d
5 Z% y, e! V8 x5 q* f3 ^& Fmodule_init(led_platform_init);9 @/ H; N( `5 N2 X" p
module_exit(led_platform_exit);
2 G; q+ I. i  W+ N3 d0 r$ C$ i+ }% F; x2 k9 ?( p5 f) Q- X9 t
MODULE_DESCRIPTION("Led platform driver");+ S$ w. C& O- h; j
MODULE_AUTHOR("Tronlong");
4 g2 T2 \6 ]6 w' `; S1 F# n( {MODULE_LICENSE("GPL");$ m5 M4 F( j6 M* p6 C# J
: }, Y4 {5 O& X+ D6 I3 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-9 00:17 , Processed in 0.042059 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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