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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 @! [% M  l; j
#include <linux/init.h>3 H; n& ?' h: E0 i, ~* n# B
#include <linux/module.h>" |& N  i& `8 F
#include <linux/kernel.h>! D7 g5 E+ B- S: C
#include <linux/types.h>
$ X/ V* m, v5 @0 U1 y#include <linux/gpio.h>
2 v( P0 N$ q  D8 [6 a1 Z4 k. V. |#include <linux/leds.h>
4 Y. _- `$ \2 N#include <linux/platform_device.h>. r5 w( S8 U# e
: s1 z/ b2 b; @
#include <asm/mach-types.h>
$ t/ O# S. j$ l" |5 V#include <asm/mach/arch.h>
; b# E, E! a, K. K! P#include <mach/da8xx.h>
! x( p" Q( ?, ?/ P$ V#include <mach/mux.h>. q: A' z3 X8 i7 M4 x* U
  R2 ?- s( X* ]& x* u" X+ a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 Y# @$ l3 r4 T  o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 G  g  ]- L# @  v( b7 @. |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ y9 S- C: G& z/ Y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); g( I9 @2 c5 ?4 c, l! R4 g) F
+ i( U/ z5 ~+ z' V& d
/* assign the tl som board LED-GPIOs*/$ t9 K1 i7 t8 Q3 v3 |& E: s3 G" v
static const short da850_evm_tl_user_led_pins[] = {
& {" G$ f! r" U        /* These pins are definition at <mach/mux.h> file */
: b- R5 J0 y( A( U; {6 `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 |. c# y- Y" ?" G8 T3 V6 C  Z" J        -1
; b8 @6 n7 _4 e};
+ f& I1 ~1 A# ^
' D% K; F- T2 q* bstatic struct gpio_led da850_evm_tl_leds[] = {/ D7 i% B9 e6 N! ]
        {; g2 v( q8 ]8 p
                .active_low = 0,
( R% b( K3 q3 D2 F& h: }' I, c7 D                .gpio = DA850_USER_LED0,
' f# o' M& Q9 n5 F  c1 i                .name = "user_led0",* M, `8 d8 R  S
                .default_trigger = "default-on",' L  S+ `' y' K: k' M
        },, I. K1 u7 z) T: p/ w/ R( }5 B- _
        {
# y1 Y! g' N. ?) y% m' q5 S. W& S                .active_low = 0,
/ j: o( d3 Z& O* N                .gpio = DA850_USER_LED1,. Q. u9 O, h* I% s7 ]
                .name = "user_led1",
1 W! Q& a- \  ~                .default_trigger = "default-on",
6 d# ~! J2 l9 m0 G7 ?. w; u        },- m2 t/ s' A# g' ^
        {
1 z# }. ~7 _5 V" L                .active_low = 0,
" g/ C4 }9 m4 K$ f) ]2 z$ s                .gpio = DA850_USER_LED2,6 U. C5 r$ J/ q
                .name = "user_led2",& [7 r* Q: C$ w( d0 T
                .default_trigger = "default-on",
) n' p8 [. _0 t+ F  }6 Z        },
- C3 \+ W7 C8 p6 X9 g        {/ R$ d; `; p, H- f% x" }3 K
                .active_low = 0,* i0 @, r& {. V
                .gpio = DA850_USER_LED3,
* `+ J8 y. d6 g4 A                .name = "user_led3",1 D* U9 f! F( A- Y; l9 K
                .default_trigger = "default-on",- L) L' ^* s  K  S; q
        },) I- W' P) u' P" L7 }5 P- M
};
/ J4 p; G% f/ {" W6 Q4 R4 X$ G: l( T
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 C2 p! ?, d: T8 d+ X6 Q! a  G        .leds = da850_evm_tl_leds,
! s1 W8 k* C& ~6 k7 x# `3 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ u$ A1 I5 g7 ?& {};
0 m( Y* B4 Q8 Q7 k) `  z. l" |/ h/ f1 d# F, z* s2 Z
static void led_dev_release(struct device *dev)
' w: K4 R; q, q# x0 Y* {' _{9 F) I0 V- c" _5 O( u. G; O: a
};
' B3 X. F4 ~* F! c7 W' s! {4 y/ y
; P& K3 k; j5 [) b3 ]static struct platform_device da850_evm_tl_leds_device = {
: A( R) l) b. s$ C* b+ Y        .name                = "leds-gpio",
! U# e1 n# \8 b% `! x" |1 E, Y' f        .id                = 1,
9 v! b4 t* \) ^) Z# m        .dev = {. Z2 p/ z9 }, Q1 ]! b
                .platform_data = &da850_evm_tl_leds_pdata,6 z. q$ I% o, y' U& b  z
                .release = led_dev_release,
' j9 x, A5 U) k! {' `& E) s        }
& r: O' C( h! m" ^: Q- {5 b};! ?, }" b8 C6 Y+ P
5 U9 ^& @* n! O1 N! D! }" ~/ D
static int __init led_platform_init(void)
' |: x- c. l0 G{" m& O; L% K( _# p4 w" y8 \
        int ret;5 E* J* u: q, k# [' {
#if 0! l. h! T% O3 d7 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: a4 `4 f, f3 f% A1 I. d        if (ret)
: V) B  u+ V* t8 j% T/ y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- Z2 T/ j! G; R0 r                                "%d\n", ret);& |7 ?' N- c6 _5 C! A8 y5 d: V
#endif' l  A# S6 m- c% Q  H6 k
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ R1 Q# [% {: }2 I0 ?' X        if (ret), ^+ Q( K4 G' D! ]" J
                pr_warning("Could not register som GPIO expander LEDS");; E0 |( D3 E! P
        else: |4 r& {( A' ?! ^  Y( t: E9 Q
                printk(KERN_INFO "LED register sucessful!\n");
/ G8 A& p- P4 X7 a# p! |" Y" @6 S
        return ret;
# p4 G( J+ `% Z) c: i9 N}
$ }- D# P$ d( T# @* L& j+ Y' a( [+ T2 [' M# t' l
static void __exit led_platform_exit(void)
: `( s8 C/ @! ?3 f3 U6 k2 I& E{
+ Q# ?, x* `# q$ c. L0 d        platform_device_unregister(&da850_evm_tl_leds_device);
& u( I, Q8 @' b4 `3 o; N! j% e+ W; m9 v0 Q- q% }1 Z  h
        printk(KERN_INFO "LED unregister!\n");0 x) A% ^& T: D7 _% v( M$ r7 n5 `
}, i) g3 o  \% U; W

7 @# O9 e% K: s+ @8 I% ~4 m2 w# Pmodule_init(led_platform_init);! G! [- G5 B% h. {6 J+ G
module_exit(led_platform_exit);
' h' y8 W8 N8 S! E: q. _  S4 |# u9 v. S( r5 P* ~% q
MODULE_DESCRIPTION("Led platform driver");* ~+ v3 X" m5 X, _7 i7 t
MODULE_AUTHOR("Tronlong");
- X1 w7 F/ }, ~, `; p6 M" q; `MODULE_LICENSE("GPL");
: r  j/ C; }+ W$ Z2 E( s4 u0 l  |7 F% s) Q. ~+ a3 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-9 23:29 , Processed in 0.046592 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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