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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" M0 k% S$ X, C" `5 H$ a5 c5 ~#include <linux/init.h>
; U0 k7 ^: G6 k#include <linux/module.h>1 X+ Q" ~% i6 U" e
#include <linux/kernel.h>: }) `3 j& {( U0 k6 y6 W0 j
#include <linux/types.h>
  P3 ?) [: C, I! @7 C' S, u, L#include <linux/gpio.h># x2 c( S& u/ Z) ]' Z5 W( f$ k
#include <linux/leds.h>6 S% @( a+ _3 ?& X+ {; P- F
#include <linux/platform_device.h>
2 n" u$ |8 M2 Y; o) a5 g: ~. A" L$ ]* ~8 b
#include <asm/mach-types.h>0 W* @8 ~* v# k- r& g, O& T
#include <asm/mach/arch.h>
4 Q% `: v8 H$ F' @#include <mach/da8xx.h>  P7 r5 K& n) z
#include <mach/mux.h>
2 Y& ~$ T7 m8 j( o8 w+ w0 L9 ?6 q
4 w4 {+ j" }8 ^* E( y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 ^$ h8 I+ R/ Z( g( v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 S  q: r5 T. G* t: {% N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 s+ I, @/ v( k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- @( c* M/ Y4 p9 K

, }: P) H8 {$ A3 W/* assign the tl som board LED-GPIOs*/
* P9 D4 }( P  y  U/ c; f3 zstatic const short da850_evm_tl_user_led_pins[] = {1 f7 L# t; F# o) y
        /* These pins are definition at <mach/mux.h> file */
2 E) u1 a1 ?) N8 c, z$ ]5 f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" T3 h6 G$ O1 M2 o& V5 k5 x        -1
0 Q% S& j. H" u0 O9 l. U};7 H# u+ c, s* c( {# k- H8 i3 o! w
6 I; A' e& Z. a: `* B
static struct gpio_led da850_evm_tl_leds[] = {
+ J5 a; n# ?0 x0 ~, q8 S4 |        {
0 J5 k7 D8 {! R# i+ A3 K                .active_low = 0,
- m4 W. l) m8 d$ e, H. b- C                .gpio = DA850_USER_LED0,5 R; I# J. J' j2 E
                .name = "user_led0",8 |9 f" b% ~! W3 h# A9 B
                .default_trigger = "default-on",
4 u4 B" L- p2 F( f6 }- M. t        },: {6 \, Z+ _6 c+ k8 k  H  B
        {+ r  k0 v: X. j# a1 _( ?0 e6 b
                .active_low = 0,
3 k# W- k: k7 B6 G  I" [# }                .gpio = DA850_USER_LED1,
6 i- }7 `/ T1 r. d  W; i                .name = "user_led1",) z: D9 I* o: Y% K! }
                .default_trigger = "default-on",
4 u$ r8 S+ C! Z2 b8 c; G) Q        },
# u. a& J) X! S- g6 p* e        {8 U9 Z' o: A4 s8 q
                .active_low = 0,& |8 r: g6 s6 K* \  S
                .gpio = DA850_USER_LED2,
! N1 C5 v) x; `* V# Y* R! `                .name = "user_led2",- O1 \5 u# w" p! U6 t3 R2 {- t
                .default_trigger = "default-on",
3 n$ f" b% N! O4 O0 e' |3 g        },
* f5 g0 f% q; b. ]1 I$ Q        {
9 R1 I% P+ |! x# r1 v- L                .active_low = 0,  x. \0 M4 x8 O1 D2 n7 n
                .gpio = DA850_USER_LED3,
5 U7 Q5 @1 i2 j+ i6 z                .name = "user_led3",
0 T/ r0 f; }& ^6 S+ D$ W                .default_trigger = "default-on",9 i5 d$ e9 ?' N
        },6 _2 G1 ?6 c  i8 W% V9 I
};
, t* M+ Z0 y( T
$ d$ E9 n  C* ^( ^' B# Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 y- N) G: y7 N+ _
        .leds = da850_evm_tl_leds,1 q! U) e8 {) z  g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ L" r5 ?5 x( K) ~! \5 {};+ J0 B* {1 j. @1 m& `
) y: s6 F) G+ r9 A: E6 C! @6 U, L
static void led_dev_release(struct device *dev)2 y/ \; d* t5 e  S' d) p) {1 j1 W
{
$ X% E" Z3 x' t' ]$ _};6 N7 Q1 Z! l4 c2 X2 b0 c
% L( q$ u  m2 j% |4 s5 w5 J! q
static struct platform_device da850_evm_tl_leds_device = {
- U3 q* l( N4 \4 H9 `8 J        .name                = "leds-gpio",
) Y9 q/ U# `$ _# H& ^* w        .id                = 1,
: f0 E& F0 D( ]        .dev = {
  H/ N+ o1 U! q8 X) j! X2 G                .platform_data = &da850_evm_tl_leds_pdata,( Y3 a% J% m% e4 ~0 Y
                .release = led_dev_release,
" V7 z8 a$ g/ h! q% R! {7 n; ^        }! D, w4 V+ d: v$ K8 W5 N, f
};2 I8 F9 S; a! A0 |& ^3 i, ^5 {. g1 J

# W* m; M+ e( [; ~+ }static int __init led_platform_init(void)
! f9 C0 [, U- K{
8 t" |1 z' o" R1 b; ~        int ret;% Z# \$ [5 ~: \. Q' D7 [
#if 0
# W. I4 c' T1 p* E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 R! C/ {6 d# L# T+ X  r. C0 V
        if (ret)
- I, x& Y0 ]% u  S/ y$ \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 l7 ~( j# g6 a3 u: @  s* C4 e                                "%d\n", ret);" f' x3 a% ]( A6 A
#endif
5 T0 T' W. T7 G" x        ret = platform_device_register(&da850_evm_tl_leds_device);* w9 ]5 ?& N+ ^. v
        if (ret)
1 f2 \8 g  R; S. ^5 U3 f, L                pr_warning("Could not register som GPIO expander LEDS");4 _& V0 [7 U9 T& T5 g
        else% L9 t! X. ]( Z! `3 u8 U) [2 B
                printk(KERN_INFO "LED register sucessful!\n");; {! |: d& s3 `* D0 a
5 q2 r+ O* L3 `$ M) d
        return ret;
. i5 _9 Q5 \8 S: c% K}; s0 k: p/ Y6 m: f6 J- j- E
+ t4 e0 C) }7 w9 |7 k7 S2 Y
static void __exit led_platform_exit(void)
9 c7 }# T0 v: i; P' w2 }{: s7 a8 k) B) J; B7 ]0 T$ ?
        platform_device_unregister(&da850_evm_tl_leds_device);% E0 l9 x6 C0 D: L: `0 U
/ U( H0 [' ?, j  y7 O. k
        printk(KERN_INFO "LED unregister!\n");
) D9 o/ T( d& G$ K}
) r9 d, S1 F' s( W7 X' R9 Q" o) H; {" H
module_init(led_platform_init);3 y) h; M/ A; K8 Y0 p3 K3 T/ I0 H
module_exit(led_platform_exit);
( _: ~9 _) |7 A) j% e/ L$ v6 h+ k0 K# r7 j! O; ]* U- S4 \( U5 D
MODULE_DESCRIPTION("Led platform driver");# R' _1 ]6 Q, L/ V  L# Q
MODULE_AUTHOR("Tronlong");
' h" ^; j: d5 k* v( h6 O1 `; M' XMODULE_LICENSE("GPL");
: v0 A6 J% C6 N" F( r' p5 U; x1 L7 ^8 C& s4 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 00:04 , Processed in 0.040158 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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