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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 D  @( b% t! d+ h
#include <linux/init.h>
2 q: [7 w6 C' S& z2 O) {3 }#include <linux/module.h>* J* b0 x( W5 |2 o& Z
#include <linux/kernel.h>. J: \9 D; l9 v( ^+ e0 ~
#include <linux/types.h>9 e4 l1 N1 a+ L8 _: _
#include <linux/gpio.h>
, _# N- k2 q0 D4 V4 o7 m: U#include <linux/leds.h>
7 n) {1 h( k+ g; o) o) X#include <linux/platform_device.h>
/ c) s2 A$ q, @1 \2 V+ e( Y, P) W6 O% f  g
#include <asm/mach-types.h>  {) s+ r* X/ Q+ A3 }' b+ x
#include <asm/mach/arch.h>
( U) {  G" e7 D) i1 J- S#include <mach/da8xx.h>
- U2 y, N: g+ y6 n8 L#include <mach/mux.h>; [. L7 G3 G$ }5 \) \
1 ~! B0 k9 ?  P5 h. g+ ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 i7 H! Y. x9 k+ y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 D- v* @# q' Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 W/ g& A1 z' K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# [4 B& n! s9 K$ m0 r, n
" c- Z& g( r4 ]+ I/* assign the tl som board LED-GPIOs*/$ {' L# ^2 {. D- e1 F: {
static const short da850_evm_tl_user_led_pins[] = {
1 e5 J) [6 x  p0 M3 Q        /* These pins are definition at <mach/mux.h> file */
1 ?* ~+ e* @2 P# R/ j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 f# _6 Q3 G( m! D/ l) b8 ~        -14 n- l" v/ `* t& l8 K
};
  W5 c) f! }; n0 G  f. w
. S+ b! Y: L; Ostatic struct gpio_led da850_evm_tl_leds[] = {  O: C3 B% j9 l. q* z  v
        {: o5 z# |0 _$ w( J( V
                .active_low = 0,
. s4 J5 v% n$ b7 G+ b1 I                .gpio = DA850_USER_LED0,
2 R, q" C( p; O6 }  b                .name = "user_led0",8 t# t% F* t. V9 u2 I# j
                .default_trigger = "default-on",8 R5 T* M' d; W: H- W' e1 Y+ W
        },. E3 [' k0 k3 y% K
        {
; q0 h8 a& O. K. C% l                .active_low = 0,4 Z: [, j3 U7 }9 w8 Y$ s6 q& E. o- M$ c; D
                .gpio = DA850_USER_LED1,- _1 l! P" M" |
                .name = "user_led1",3 t# K: d# X0 S; z3 I
                .default_trigger = "default-on",: k, R" T3 r) u2 P
        },6 J5 ~9 T8 ?( E# p! E8 z
        {
) m  l: S9 q  W7 C: D; D1 a                .active_low = 0,
  e0 l# K& a) H! _7 f                .gpio = DA850_USER_LED2,% I$ y* O) l( j7 \
                .name = "user_led2",
  W8 J9 p! {4 }* X2 P% p' {                .default_trigger = "default-on",
& g3 D9 M* x- _6 Q/ s$ M( a        },
  @, M1 f. r9 d3 q7 O        {  E! A: B8 r2 Q- T2 }
                .active_low = 0,3 M/ x' v  v; e9 C9 l) Y" k
                .gpio = DA850_USER_LED3,+ T1 `% y; G  q$ D2 x5 c& x0 d
                .name = "user_led3",
3 n  ?. k7 ?5 S1 j% Z; j$ s3 m  N                .default_trigger = "default-on",
5 q9 w' G( L9 k, u  _5 C6 {        },
" ~1 p% q6 T% }% D: S};7 A5 I% F% p4 b3 s& y
- e% u) ^0 @+ f. ?7 P. g" O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: k) w4 U% o( N% _  M        .leds = da850_evm_tl_leds,
# S0 P3 ^+ b* p0 W+ w8 ~  V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; t9 V, [' p- n1 ]$ b2 D7 p
};
0 n8 y, I- d( F7 K( U: f. ?
- S$ l! d# S9 M9 Ostatic void led_dev_release(struct device *dev)- _, b6 g3 y' e* o& W2 `
{
, M% b: u2 t2 z+ @4 A( ~};/ v8 j/ X' l4 H$ W" y% E

! a4 y* J, S: i8 c, ?% istatic struct platform_device da850_evm_tl_leds_device = {7 X6 f: Z3 n" {5 c# K
        .name                = "leds-gpio",, S- |" Z3 {* D: U. j% X7 z
        .id                = 1,
$ r+ X/ ^6 H( N( L+ k5 z        .dev = {
" [( T) k4 c2 h                .platform_data = &da850_evm_tl_leds_pdata,$ N7 V% E3 g4 P3 ~. L
                .release = led_dev_release,+ Y# s' o( A- F5 ]8 O7 m
        }0 i$ t+ r% q9 g# R: V: |& U& F/ K
};' O! |3 J& m. v) b0 u
( o5 P& @1 b) f
static int __init led_platform_init(void)  `: J" J. U; U; ~
{" r6 X1 U1 f" {0 k3 p: g3 T
        int ret;
6 b% I: k# |) [6 e7 y( l. O) M% s#if 0; J4 Z" E/ s2 F# `4 B1 v" c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: m, R! Q4 N# B  {$ W
        if (ret)
. Q# Q: W1 n  b+ h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 E; ?- y3 h+ g
                                "%d\n", ret);
  M) W3 e. i3 Q* i+ s( v#endif
+ W9 D" T, E) i        ret = platform_device_register(&da850_evm_tl_leds_device);6 W. {. m2 h2 K5 F$ v
        if (ret)
% y3 F% H: U, a0 f7 y. N* h; Z                pr_warning("Could not register som GPIO expander LEDS");
; P( x9 y2 O+ Q2 j        else. K5 c( Y6 O: f& |2 t+ a$ M
                printk(KERN_INFO "LED register sucessful!\n");
) [; Y$ Y, t" ~* |  S) b' P6 p, z0 H
        return ret;
4 O/ [: H6 d( ^) u3 v; S3 d}( ?0 n# g* G1 G1 Z% n
- c7 `0 l* T' c* _
static void __exit led_platform_exit(void)( e* f: y4 R7 y7 \/ Z2 z4 m
{/ r  U  a9 w8 N  J9 P# ]& s
        platform_device_unregister(&da850_evm_tl_leds_device);
8 I0 v! y. U& f1 ]6 E8 F5 O
! ^  O+ s9 m9 j( w        printk(KERN_INFO "LED unregister!\n");5 e6 R, i- M. [2 l, i
}
' q' o) y4 M7 e. r, c/ g0 h2 J" X% |: m  K& p5 x
module_init(led_platform_init);! ^$ c* j& j+ A0 l0 ]" c2 Z) I4 [
module_exit(led_platform_exit);
. N" w, N; ]5 D7 z& e+ e* T* H- b6 u5 g3 b. Q! p9 O6 ^3 O8 c; p+ |+ e7 g- W
MODULE_DESCRIPTION("Led platform driver");1 ]& K2 u. h$ Z2 \1 Y
MODULE_AUTHOR("Tronlong");2 C; R. a# r# Z5 V9 }
MODULE_LICENSE("GPL");
6 {+ p  y5 v9 @9 ]  T! B; _
8 c8 }* v# F( T- ^8 r& `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 02:01 , Processed in 0.039498 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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