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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. m) G4 X7 V* u" Z2 u: d. @- F#include <linux/init.h>
* M# D+ o7 N: Z#include <linux/module.h>
6 C3 n, n4 g8 a. Q#include <linux/kernel.h>
2 k4 |  }+ ?! {: Z1 [#include <linux/types.h>6 O, r; c. S( a" Z+ Z/ x; ~1 l
#include <linux/gpio.h>2 `1 e; m  W, D4 a" T6 z
#include <linux/leds.h>
) `. Q0 B0 d2 F#include <linux/platform_device.h>
4 W- o3 J3 S6 e! d- Y5 _2 T- ~% }
: V+ Y5 @( H; y" @6 h% z#include <asm/mach-types.h>
$ j5 X' ]  V% q: S#include <asm/mach/arch.h>- h. i/ a, u! ]1 Z' [
#include <mach/da8xx.h>
6 }8 I1 x/ v- t, I#include <mach/mux.h>% d5 Q& ?5 T( }) X

' O' u5 S* ]: N) E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 [% f: G* p. M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( x/ _$ h4 I* E' ~- v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 N1 W% G0 l. D* {) i1 R6 o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 d% `* ]. Q+ A! f
- }8 [2 ?2 h' `, f! I/* assign the tl som board LED-GPIOs*/
) I% K- c5 b# N% u$ h1 Zstatic const short da850_evm_tl_user_led_pins[] = {7 H5 G' Y2 y' \0 ?0 d& o$ W
        /* These pins are definition at <mach/mux.h> file */
4 b" Y0 F: q  Q! w" A0 B# b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* q( ~5 {+ J* w0 q, H1 ~7 X" }$ M, o        -19 M) }1 M: s9 C9 X
};
' @5 T! n9 v* C! Q0 `& E3 O: Y. [  @
9 L7 G- |& W9 d' Qstatic struct gpio_led da850_evm_tl_leds[] = {! P! u9 T4 P0 h) c, {* J- A! C/ L
        {
+ j4 W- s3 G! k8 x                .active_low = 0,
: N$ r- W  G" R3 O; ]3 Y                .gpio = DA850_USER_LED0,
% P1 V2 O2 ?' Z% T- n                .name = "user_led0",
) O3 [' v' x2 V2 S0 F- A                .default_trigger = "default-on",
( u& f  M4 O: G- _, L8 U- x        },
; Z1 M/ S4 \. x: J& K* @( A5 }+ M# O        {
7 T) B0 }- H& I0 K                .active_low = 0,, C" C  P, I% f
                .gpio = DA850_USER_LED1,0 E; `( y9 p: F
                .name = "user_led1",
; j3 R9 S. w( Q                .default_trigger = "default-on",
7 n8 k3 i0 C6 I5 t2 n        },
1 Z: o9 b; z; Y4 A2 H        {0 a0 m& c9 m( |
                .active_low = 0,' S, D+ G: V% r$ j; L
                .gpio = DA850_USER_LED2,
, D( T7 [: w8 p& V' e; z# {                .name = "user_led2",# e0 V' j3 t' K6 j5 w2 h
                .default_trigger = "default-on",
: {7 d- Z# V5 _6 Q2 K8 ?( u' t        },
' r+ R5 ^0 O6 S4 Q& i4 c        {
& t" h  p. [2 z( T( {6 x# K& F                .active_low = 0,0 y4 {0 s$ L. c& p2 g  u
                .gpio = DA850_USER_LED3,/ F: |1 F+ Z. @3 x# U7 S5 \+ A9 R- u+ Y
                .name = "user_led3",
: U% Z8 G, Y5 W) Y                .default_trigger = "default-on",
" C4 [* h1 {2 g8 J1 R/ Y8 z- G        },- L$ {- n3 \7 Q( O3 ]( a* Y! S
};1 t7 B6 F5 r6 X) T

" I# s8 E3 `' P; e) `) qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ J) q8 _! l" c+ i* |        .leds = da850_evm_tl_leds,
0 p: M& c' y: u# r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 g3 E/ v% |9 m# I9 m% _7 \
};
# W% H% L; g5 ], N' c6 R
3 l  d8 m& r3 pstatic void led_dev_release(struct device *dev)
  Y! d5 P% d3 p* v{. v8 f5 U- f4 h/ t# ?1 s! a0 l" J
};/ [% P2 ~" x. F; O% ]' F" F

7 A* t7 }* B7 Y6 e$ ustatic struct platform_device da850_evm_tl_leds_device = {
) S# [# p# o( I! p" `( I        .name                = "leds-gpio",
' `* c, Q  k( T$ Z/ k0 q6 o' t        .id                = 1,
( m: E' g' x( x* O        .dev = {* P5 Y$ l1 H2 C# y
                .platform_data = &da850_evm_tl_leds_pdata,
! h2 X( F6 }$ J9 y" f3 _4 H                .release = led_dev_release,
) _) w, R" i4 ~6 K9 ]        }$ o# J( k  y' X
};
- L9 ?( T. W4 k" M4 ?
( d+ A* r( N8 h2 ]4 n2 Jstatic int __init led_platform_init(void)
( H- ^" T  c, N& F. }( _" {{% `/ b2 }: o- u, B: s
        int ret;
6 y& I1 o2 E' P#if 0
9 z" O+ n; Y, X% Y* J) I  }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' Q+ m* P  \3 {. Y$ o' X        if (ret), T. i+ a/ p2 d% H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 j( x3 T  o9 W  a" x5 C" @: T                                "%d\n", ret);( p; p2 E* @) ~
#endif1 F5 x7 F3 O' `6 r
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ [) B( ^6 O6 A8 W* n+ P        if (ret)
  U. J& y) s! Y" {" L# O                pr_warning("Could not register som GPIO expander LEDS");
' e8 z: s5 c& W* J        else
4 L0 Z& x7 H9 U. h                printk(KERN_INFO "LED register sucessful!\n");
" a9 h1 [  e; F2 c+ E
2 j" t- z1 D5 v' T) ]        return ret;0 y5 `) P/ M  Z  l7 ]
}6 x" O7 j8 z% H  `# g
) |9 O5 |8 X2 m+ e3 G" n
static void __exit led_platform_exit(void)
3 d! t8 U7 s& g6 B{
. I) P" z4 b2 I  r9 Q$ [        platform_device_unregister(&da850_evm_tl_leds_device);. F* m6 O  K1 k# o: d) p
" ^$ p4 j3 O8 f/ U1 n
        printk(KERN_INFO "LED unregister!\n");
. h  S2 x0 O- d  J& S# [}
& h9 ^9 i  o% x' U- O/ I( I8 D, [  V! P
module_init(led_platform_init);! `. z5 A* r7 o
module_exit(led_platform_exit);. A' @4 n# d. x; z* O

# O" Q2 R( q& n! D: z( j0 S% ?MODULE_DESCRIPTION("Led platform driver");
( J4 t, D# d" U% R* U, XMODULE_AUTHOR("Tronlong");
: q) E, Z. _3 g; F) W8 \6 \+ P. p( ^MODULE_LICENSE("GPL");2 |: }' {9 \  l; ?' v0 \
3 A1 s$ W6 y( J7 ?9 C% F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-21 13:44 , Processed in 0.044355 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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