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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, \! @: z! b$ b" _#include <linux/init.h>& h8 ?, M( `6 t: b8 Q) j" r7 G
#include <linux/module.h>. j# c2 `( j$ X- f
#include <linux/kernel.h>4 E! q$ N1 e3 C) \! b
#include <linux/types.h>
9 p' |9 C" S) w0 o& j#include <linux/gpio.h>7 v6 t$ S8 y+ E  k
#include <linux/leds.h>. n$ y9 P. X8 P3 [+ c: Z& r7 |
#include <linux/platform_device.h>
/ Y' S  u  [. B4 G7 P9 S$ N0 t" m; }) [3 u2 p+ |
#include <asm/mach-types.h>
* D8 I+ j0 }2 _1 `1 o5 L( E, h$ _#include <asm/mach/arch.h>
- Y6 g; G0 A$ l& N7 c#include <mach/da8xx.h>. }7 H' A/ U% V/ ~4 U' Q: `
#include <mach/mux.h>
$ z7 [0 r" [# r& E' A( A# L) D+ C: H* J% J; p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' o9 P& ]* z7 D4 ^2 K5 f/ ]3 r' A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); n+ T7 o3 j/ k2 r& @) h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% f' O3 x( i7 B6 Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. q+ y8 C4 m) a' e6 u3 t4 }
7 M- O8 g# ?  \' O  }8 }- P( m9 i/* assign the tl som board LED-GPIOs*/9 O, A9 S! {) f& d/ \7 v
static const short da850_evm_tl_user_led_pins[] = {
: y/ o- d9 l* ^/ K4 }5 {! E/ T! ^        /* These pins are definition at <mach/mux.h> file */
8 H7 w3 I/ S4 c+ a- E: H/ y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( K& h8 y! U, g5 d3 \6 [0 S0 a$ g9 D        -1. c" P8 K2 i6 }8 ?, T
};9 u1 W( ^. }2 d2 V: `" C7 C# b$ ^% U3 Y

) S3 c0 @4 p$ p, z3 a" l/ ]9 Vstatic struct gpio_led da850_evm_tl_leds[] = {
' p! N3 t: I# y        {
- O8 C7 G5 x: J* S! m0 w8 Y                .active_low = 0,
( q8 l/ l: }9 \4 S2 d4 C1 f' e8 u( R0 Q                .gpio = DA850_USER_LED0,4 i7 D/ K8 v- C( Q( N6 Q
                .name = "user_led0",
: g, h" U+ M& \) o* b                .default_trigger = "default-on",
8 t5 [  i( e* [" k9 v: y        },
6 a( e# Y9 K; O- g        {
% F6 |; `0 z8 N  U' t+ u- E                .active_low = 0,
, L: v( J. R) M2 K" v                .gpio = DA850_USER_LED1,
0 ]5 _1 c$ [+ r                .name = "user_led1",5 m) U1 y5 m, B+ ^, \" u
                .default_trigger = "default-on",5 f; G1 h% g+ M6 S2 q
        },' L$ r) d- u) Y7 B+ [
        {
% D; x) o- K# T; N- n                .active_low = 0,% I( y. G  A) u
                .gpio = DA850_USER_LED2,4 x' X' y. F$ [6 G& e
                .name = "user_led2",& k( P9 g7 D3 C: o! _7 R4 X
                .default_trigger = "default-on",+ X% F1 c4 i; S5 `+ j4 d
        },1 o. @1 _, _7 C
        {
3 h; I8 r& M! T4 j" ^                .active_low = 0,. u3 z* n2 [; r. V
                .gpio = DA850_USER_LED3,1 G/ O% y0 I: q2 n
                .name = "user_led3",
% c; n. R5 ]3 z' s3 P- M                .default_trigger = "default-on",
- ^8 Q! N; C5 O+ z        },. a4 w1 N! F5 M5 u! Q, p
};, J( ~+ I* D) E3 {' t' t( z; J
1 ?: `) h5 ?: u: m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 I- |1 u; u  @  N
        .leds = da850_evm_tl_leds,
( l- A) A8 l) @5 _+ D5 L: O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  Y+ X( U+ J; s% Q5 E' s, M# p
};
" M& o# p) V( Y1 D4 z' T! l$ {% d
$ H9 z5 Q+ q- L# j# \# ?- estatic void led_dev_release(struct device *dev)
$ b3 d) r2 k. N8 {: p3 Q# |; T* a{$ X( M5 h) L$ O
};# i6 h: }' n+ ^  {2 d8 B

. r7 A# I; m& Z1 Jstatic struct platform_device da850_evm_tl_leds_device = {, B2 D$ k# y5 b( N9 t
        .name                = "leds-gpio",
  Y4 z# d3 F$ E8 e+ r- Q6 N        .id                = 1,! C% e6 h0 r3 H
        .dev = {
+ ^3 u9 ?4 _1 b8 ^, R( M                .platform_data = &da850_evm_tl_leds_pdata,
5 g# G7 b0 r1 `" F                .release = led_dev_release,
% }9 ]; Y( P  `        }
% ]! T" i$ b9 j) z  {" f: @" z};# V2 i' @/ \; D' e# ]

8 G4 R* e9 ^, k- kstatic int __init led_platform_init(void)
% U- X& G% _% y6 G{
* J, t6 _1 z4 T+ D  y, G        int ret;- ?* H8 e: s- W- p5 i4 }- g
#if 0
6 M" m. s! p8 z8 W. ]7 M9 ~9 I: E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 l! l6 ^) [7 d        if (ret)+ P6 j, x, y$ q4 o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' B; k/ X6 ?- M9 x' T                                "%d\n", ret);5 u* Y' J" N- o. \0 G
#endif2 g" ?4 {) T8 q8 l/ s
        ret = platform_device_register(&da850_evm_tl_leds_device);. [. B  v# i9 S% O
        if (ret)% V$ j+ C6 E& }
                pr_warning("Could not register som GPIO expander LEDS");
& b; z/ N: {- a* Y' `9 K        else
: `8 ~& L9 _% d; ~                printk(KERN_INFO "LED register sucessful!\n");9 d$ H' c8 R% R& ~& K- [5 {- L& {
8 i1 T9 M$ N! \) ?$ s! X* n
        return ret;$ A% }' ~& i& P: }5 P
}3 T+ Z0 F& S; n, _6 X$ ?2 n
3 x6 X; ?9 Y& o2 ~/ D. {
static void __exit led_platform_exit(void)6 E, b+ X2 D0 B& b9 g, D
{
0 U+ F2 D  N' ~1 f* a        platform_device_unregister(&da850_evm_tl_leds_device);
: j* {& `# ]1 Y
5 W* S$ A5 H- P) k  s9 n        printk(KERN_INFO "LED unregister!\n");
: t6 X1 @* M& `5 }2 c}  K7 o2 Z( T" m' |- J
6 C9 T. F9 R- @! z% V2 ~/ h/ p$ C# G
module_init(led_platform_init);, S5 L0 c, m; O6 y* H4 T
module_exit(led_platform_exit);
$ a: r: W# N$ ]' A+ V: g% K7 f0 ]
MODULE_DESCRIPTION("Led platform driver");
7 l) ^) P" F9 [8 S& K0 u  eMODULE_AUTHOR("Tronlong");
+ T9 B0 l) B% [) ]6 V+ ]MODULE_LICENSE("GPL");/ X$ a& j! x; L- P& K: b
" J2 C0 e, Z* h" {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 19:01 , Processed in 0.038365 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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