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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, `! E, e" {! ?8 _
#include <linux/init.h>
2 |% ], c2 f5 b$ q4 ^! X#include <linux/module.h>
2 i+ l! v9 _% ~9 D#include <linux/kernel.h>& W- I, n* q1 P8 y0 K- j, v! T
#include <linux/types.h>4 F! A$ _* l3 f" W1 @( g
#include <linux/gpio.h>
5 p$ s6 R; g& U% u# u: e0 Y#include <linux/leds.h>
. @5 Y' D3 q% r( S" Y. A, Y#include <linux/platform_device.h>3 I) g7 i. B) y2 L8 N: ~
; E% f% O) O' e: N" F4 v- y% ?
#include <asm/mach-types.h>
7 e& z- w# E* m& \#include <asm/mach/arch.h>  Y, G; s9 Z% B
#include <mach/da8xx.h>
+ Q+ Q: O0 G0 r$ E! M#include <mach/mux.h>( `: U) f5 b# j

. u4 |  u( f5 `; S% M5 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 |& {- p0 c/ O/ Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 U* Z  [  [2 ?+ V: d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), y/ w, h5 h# i& @7 K7 P
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 E; u; a# g( \6 f* r5 v6 k, @! \3 g
, e; Z( U: f* X% b5 D/ v/* assign the tl som board LED-GPIOs*/( Q* Z  s8 n* U0 T) i4 n; Y
static const short da850_evm_tl_user_led_pins[] = {
* t. G/ B" W8 N; k9 c        /* These pins are definition at <mach/mux.h> file */; c3 K% w' p, d" t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) }1 k3 b5 b$ k0 k5 P        -1+ F4 |: B9 M% E% W( k. M7 C' f
};
* {: T# M: `; ]% W& K- R+ A
& P% Z& x+ s; m* {1 O( \static struct gpio_led da850_evm_tl_leds[] = {
. T7 R) z6 ]. Y+ {        {
6 ?" m1 h! Q  o                .active_low = 0,5 {; L, i$ j; @% U6 Z! A$ A8 @
                .gpio = DA850_USER_LED0,
5 I. g- o% a) ~$ d. Y/ R                .name = "user_led0",
& ^" x% L; g, H: X# ~                .default_trigger = "default-on",$ l0 ^  p! I+ O* e) F- V
        },
  f2 g( [6 P2 w: G2 a: N        {
- Y+ }  s: e+ ?                .active_low = 0,
4 |& o& P% L) [$ y2 o8 b1 x4 L0 f                .gpio = DA850_USER_LED1,/ l# \# L8 F" n5 w
                .name = "user_led1",
$ p& N& g! c8 P* L9 }                .default_trigger = "default-on",; k2 s- z9 }( W
        },
( z( s- `/ M* u5 C6 {( [% [0 T* g+ H        {2 L! Q% d' w' n8 H
                .active_low = 0,
$ Z3 w" g+ ]& D2 f) a" p' H* ^/ o                .gpio = DA850_USER_LED2,
/ V( t& w0 x3 x% W3 x                .name = "user_led2",
9 g1 N5 o1 b, j- {+ J                .default_trigger = "default-on",
/ v  {8 w5 ]1 Y( i( [        },
( m1 Z7 F- _: [5 g& A        {% a; t" c8 T- ~8 L/ g
                .active_low = 0,: I4 V4 _: f& M, }& u9 l3 ^7 L
                .gpio = DA850_USER_LED3,
, |$ d- |( `( L+ E1 K                .name = "user_led3",) X6 X+ N* V4 `9 I5 o. M
                .default_trigger = "default-on",, V3 T' @" s; e3 ]0 y" w/ R
        },5 ^/ Q$ f# H; z% I' y1 q5 k/ U
};& d( X$ f6 F: Q. C5 Z) B

* J$ q& Q; F5 E! ~/ J1 w& M6 s. cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 E; r8 W' [, V& q1 e% W3 [        .leds = da850_evm_tl_leds,& I: F) B; s. c# M' l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 ^& w9 o& o, R" ~: ~% z
};: N( O- V* ]2 T7 X+ Z( X

9 g( y% x* E7 b+ }9 _static void led_dev_release(struct device *dev)% X& s1 N1 r4 ^' f
{# \5 N8 F9 h* @  t
};! y9 ?5 W3 x% Z% E5 [% F( y

5 S" P  s% O. S+ ]5 rstatic struct platform_device da850_evm_tl_leds_device = {, o  J7 q4 j' v% C% N& K( \
        .name                = "leds-gpio",& X: R2 U4 ]- D/ x, Q+ F  m: t
        .id                = 1,5 E* p) i0 s4 V; L
        .dev = {
$ Q# x$ w  p# n% |% C5 g                .platform_data = &da850_evm_tl_leds_pdata," `, N5 Y: s3 t# E; p
                .release = led_dev_release,4 k! m  C% f' ]9 m/ j1 e! ^
        }& C6 Q, C. d1 c7 u: v! v7 z
};
* t9 X1 x4 i+ E$ f8 T. s. s. V- k9 J% ~0 n3 d. \" K! m: u
static int __init led_platform_init(void)& _3 `$ I; Y& w
{  N. J( R% t. R  R' [9 `- I  m- D( u
        int ret;
, L3 e( ~# d$ h1 g( ]#if 0
5 |+ l4 J) L: Z7 [0 N( G6 f% I% z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) d$ [6 v) M* v4 `4 E' M, t/ p
        if (ret)
$ H% t- d2 o% P/ A, ^( }/ {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 w. p- Q: ?5 j                                "%d\n", ret);
9 }- Z! ?* D8 u2 {" C" T, J#endif
7 Y* M% ]; v2 v, J* f        ret = platform_device_register(&da850_evm_tl_leds_device);4 T% X/ v: _$ [0 w
        if (ret)
0 S8 h1 T% d4 [3 N  s' {; }3 N0 F1 ]                pr_warning("Could not register som GPIO expander LEDS");8 O. H2 [8 Z" i8 H% ~) g! ?
        else  [; E- g8 B$ w; z$ I8 S6 P' Q& `
                printk(KERN_INFO "LED register sucessful!\n");: Y% i0 h" N' @3 W1 g
6 s! {/ \7 a2 A4 ~& L
        return ret;
6 R: y. x0 A! c}
# h) v( a, L( ^- Z) F5 z, ^3 P1 p
static void __exit led_platform_exit(void)  l* T3 v% U$ ^
{! v. W$ B9 U0 q0 A( s! x. J& I
        platform_device_unregister(&da850_evm_tl_leds_device);
$ `; Z% \  v  a: ^6 j1 w
; S# A! L/ h0 @; D        printk(KERN_INFO "LED unregister!\n");, d) [/ h) f+ I( [+ k4 B8 F
}
; e- O; D* ]6 o4 X1 K0 \- x3 l) Z& m( Q0 D7 E8 L4 K8 N) K0 M
module_init(led_platform_init);% n( m) @$ U* _) Y- _
module_exit(led_platform_exit);
" t, [+ S8 K5 n, B& g. B, G% M7 r" U
MODULE_DESCRIPTION("Led platform driver");2 t; J+ u* I9 |: g7 G  V( k; E
MODULE_AUTHOR("Tronlong");7 j/ `  D% p" ]1 n4 ~8 [* r3 ~
MODULE_LICENSE("GPL");$ N" t) m( E! b
. l/ [; y: H, x/ R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 21:06 , Processed in 0.039545 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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