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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& D; c1 e' _6 i" s+ E1 }& ], V' i#include <linux/init.h>
" ]/ W; \. z0 h% v+ C3 J' H#include <linux/module.h>
  l  a7 @8 c$ `. Y* j4 H#include <linux/kernel.h>
# g/ K* U" W4 j( ~3 R#include <linux/types.h>" y' i5 W+ [, ]1 }3 @. i' U
#include <linux/gpio.h>3 H& X7 T5 @' z, s
#include <linux/leds.h>
$ @! G% u: o/ }#include <linux/platform_device.h>
( y3 }# U& p0 O5 M# @( R
+ o+ s2 ~7 W% J; d2 Q% H& E' M#include <asm/mach-types.h>! r; E6 h# x9 T% O! ^& E% i
#include <asm/mach/arch.h>
7 A) e& `" Z! m8 r#include <mach/da8xx.h>
/ }. M6 E) a$ u/ y1 T, p#include <mach/mux.h>) e8 ~6 t3 O  d

2 T0 _  \& M  X) T& C# h1 q; F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ ]5 b; t$ ]5 h  R7 l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); O4 I9 K# q4 j+ V, b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ I1 L) `  \' ~+ I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 ^# J2 ~) z( g4 b% Z: a& x2 P, V5 U/ F- i9 z5 h5 m
/* assign the tl som board LED-GPIOs*/% v, R1 d- u! g! L, A1 j* L
static const short da850_evm_tl_user_led_pins[] = {
" }5 z$ F7 u. {- T        /* These pins are definition at <mach/mux.h> file */' W9 o9 ^; n8 K  [$ X& p# Q5 s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% J% ^! k+ y5 g
        -1/ r8 Q1 u0 d3 n- |! r; v
};
4 V  l2 F% C: g- U! ]
6 K1 B: _; l7 i4 v! |static struct gpio_led da850_evm_tl_leds[] = {
1 ]7 h' _/ {( f- R! P        {
2 Q! Z# L. o$ K. ^                .active_low = 0,# p, \) Z  Q/ V
                .gpio = DA850_USER_LED0,
+ F% }; `# x) x9 c) B8 i) k& |                .name = "user_led0",+ U# ?4 p: M5 O( ?  b1 B& P
                .default_trigger = "default-on",1 ]+ W* Y$ R3 M
        },
" ~  }* s  I# A2 z- y        {1 m9 _9 g: a" Q: M- R. h
                .active_low = 0,# ?$ _: z; ]2 H+ n$ v
                .gpio = DA850_USER_LED1," m5 D! }! R# h1 g3 t/ u! r
                .name = "user_led1",  U$ n: E3 G) q8 h# p/ O
                .default_trigger = "default-on",
! \, b0 y0 i6 b& w8 Q& t        },$ B9 a2 x/ ^: t& l: f
        {
( u8 A4 o8 Y0 X                .active_low = 0," L' h# g3 X) u; O' s
                .gpio = DA850_USER_LED2,
1 }) F0 F* z. i7 K0 O3 S                .name = "user_led2"," t3 u9 S" x; o4 i# M
                .default_trigger = "default-on",% Y- [# j9 I, m; l. y
        },
0 K+ m- ?2 \/ Y/ u/ x$ u8 X2 O; B        {5 J6 G- r( @! o. v1 q1 g1 _& I
                .active_low = 0,
3 m7 w+ G* H# k  c, q* a" j) g                .gpio = DA850_USER_LED3,$ g6 s" z: K5 x$ i( m2 l
                .name = "user_led3",
9 u0 o- o  m- f8 n% K: O) \; V* g                .default_trigger = "default-on",/ _% P/ \; a! g1 D2 {4 [6 H
        },1 X1 h# c# X% w% A; h! k9 @7 ?1 @
};6 O# a+ Z5 ?' d# y
! N- I2 X1 U" C! o' S& \3 B9 e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' k- l: }' [0 c0 @. M/ k
        .leds = da850_evm_tl_leds,& B0 ^. X6 T% F% I% t
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 D; B7 ?( \- w$ r+ n( n3 ~};
- i/ S0 O% r, o! G: E5 o5 P& W7 O* j" D/ B$ t8 ?' G+ v5 y
static void led_dev_release(struct device *dev)6 K  c" z8 R4 l
{
8 n6 D7 L1 F; v7 h0 i" C0 f1 j, H- H};( s6 \6 ]* g) U, A( V) y5 }
% N1 v! ~: B' A5 [) c9 z* s) \
static struct platform_device da850_evm_tl_leds_device = {
- p. K: M: G$ d        .name                = "leds-gpio",
1 V) o) @9 O* f( N& f: N! m! J/ K        .id                = 1,1 M/ d6 B- u5 {4 c
        .dev = {2 g$ b9 i* h, x  R6 n8 q9 B
                .platform_data = &da850_evm_tl_leds_pdata,9 U/ u0 P9 @7 h9 W0 h3 ]& h3 y1 }
                .release = led_dev_release,
/ v* _5 Q6 g4 N        }
4 f9 d4 D$ u5 _* ^};8 X- O1 O0 @8 N3 [6 `/ j6 G* ]

' y0 {6 S1 ~0 astatic int __init led_platform_init(void)$ F* {; |* b9 k' Y) y
{( r6 k+ w/ L: a
        int ret;/ {: n& ?7 |& _: v( @
#if 0
" Q  s- C& o+ K1 h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ s* v. C$ j! K' |" p        if (ret)
7 m, P5 g/ F0 m. f- C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" w+ Q! X: D* @3 b; E6 f8 L) v0 @3 s                                "%d\n", ret);
2 u- Z4 C7 l; ^- o* x#endif' Q/ p5 T6 D3 s! o* }, K
        ret = platform_device_register(&da850_evm_tl_leds_device);5 G6 Y/ F4 b, Q# U" G. C2 Q
        if (ret)
0 x/ X: r$ U8 P& E                pr_warning("Could not register som GPIO expander LEDS");
5 m2 X; w  |5 p2 S        else6 n/ `7 \5 z' a
                printk(KERN_INFO "LED register sucessful!\n");1 v: H# F" e* _( O% ~) C- ]

, g8 v5 x( i3 v: m4 [' Q  A! p        return ret;
) n2 U4 L' j4 e  r}
8 Y9 V( |5 p: C, `" G. F
  M, ~. g7 {  k/ n2 tstatic void __exit led_platform_exit(void)
# R8 y3 Q% v0 E( V6 W: w5 C{
2 d+ C6 ?9 ?5 Y* W5 W% V; [% s        platform_device_unregister(&da850_evm_tl_leds_device);
; Q2 F$ `; X9 `) B5 ~! S1 f2 U
9 o0 I" t4 y9 k& K! I        printk(KERN_INFO "LED unregister!\n");
, y6 B7 U* H7 D) j/ @. W) f}
* Z2 P' A/ r9 m) d$ O1 P0 _9 m+ t
module_init(led_platform_init);' G$ y9 L5 f$ J: p
module_exit(led_platform_exit);; y9 z0 m* Y/ [9 \2 k; x) N
* h7 ]- D9 c, I+ s$ a/ [- s
MODULE_DESCRIPTION("Led platform driver");
' P" t4 R2 F4 cMODULE_AUTHOR("Tronlong");
' {1 T6 V6 m  U. e- r+ GMODULE_LICENSE("GPL");
0 L$ l3 M, w3 m- h# A9 R# T2 V
, z( b+ j. }( M- j8 Q$ j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 14:56 , Processed in 0.040549 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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