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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 v! x/ A. B- q2 E9 l" ]2 B#include <linux/init.h>
4 j* O! [3 ~- |- X- f. h. Q#include <linux/module.h>
' s3 l- |" K' T#include <linux/kernel.h>& Z3 d( t9 n0 [& k
#include <linux/types.h>
( N& n7 Y0 h9 L#include <linux/gpio.h>: M5 c1 _5 j3 j. u; l% X6 y
#include <linux/leds.h>- W0 ^3 r# f4 c* ?: u+ A
#include <linux/platform_device.h>
# k) l+ P' @. Y8 g. Q! ~7 z) y) F* v& p) o$ P/ A+ t+ M( N2 F
#include <asm/mach-types.h>. _4 |  k5 C% q5 f' t* `# Y- }
#include <asm/mach/arch.h>
9 \" h* s& N* H# K#include <mach/da8xx.h>) ]0 a( U( O; V+ o9 M
#include <mach/mux.h>
( U1 }4 h' x! X/ G3 b4 s5 W9 B1 n4 J6 c5 U0 W9 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 Y. A" C3 X$ q. m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 k9 T8 O2 ]$ K2 w- g; l1 Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* s5 }$ v9 Z" g9 J8 O6 [# n4 @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 c$ r# L4 x% `

* A4 n, F. T* a* q/* assign the tl som board LED-GPIOs*/
, R2 m  X2 `, l  U5 R( E3 gstatic const short da850_evm_tl_user_led_pins[] = {
- v, d0 G7 i9 v# N. S        /* These pins are definition at <mach/mux.h> file */
- W/ n+ K2 y! ^' X7 q0 H: N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 c- ^2 J- D. ~( N. g        -1. h( O5 K  n1 e
};
6 Z, {  Q6 G( h- b
0 \2 U: o, M8 X6 s+ Q. Cstatic struct gpio_led da850_evm_tl_leds[] = {) }' g" E, N- h2 g) e# V# r" ]
        {
- [! a7 Y% [9 `- }                .active_low = 0,6 a2 @0 Y3 Z; k
                .gpio = DA850_USER_LED0,- h' c( f: w* l; {
                .name = "user_led0",
9 U( p; U  ~1 F) \+ X, V4 V                .default_trigger = "default-on",
+ j4 \- c  A" T* b) R) H8 k        },
& N) P; A7 M0 L5 G2 `        {: Y/ c: X; w3 k9 G; ?1 X# R
                .active_low = 0,: O# x4 N% i6 T8 ^& d' A5 Z& ~
                .gpio = DA850_USER_LED1,
7 B% L! s# K! _6 x% Z( k; o8 B                .name = "user_led1",/ V2 G/ p! b2 K4 r1 ]1 A2 V
                .default_trigger = "default-on",
0 F4 R: G9 H! T  E9 [0 b" I% @        },- _) O7 J7 H* s3 p
        {
. b+ W( f* f  X- u* J; P+ l  R: z                .active_low = 0,7 D3 L/ u* o1 ^2 q/ G
                .gpio = DA850_USER_LED2,
4 `2 V0 B% U, J- o0 L                .name = "user_led2",! u  X* E# s3 c1 a; |$ D
                .default_trigger = "default-on",
5 f; t" A; x" y7 ?- y1 u        },
" v# [/ s7 A: v' p        {
) y; H7 U1 |  @/ F$ s& Y( T                .active_low = 0,; G+ s1 S+ I. g* S. b5 e6 e
                .gpio = DA850_USER_LED3,
& [3 d: g0 A: \) c8 p                .name = "user_led3",
  Y0 @/ ]9 |1 e0 v* i1 Y" R. J                .default_trigger = "default-on",9 T9 n( r$ h2 [7 F
        },9 {! v! l: U& e) o, {$ I! k& ^
};0 X; h% _( w6 p8 h! H/ N
8 p% z1 l6 \0 v# L* ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  J" |# Y0 [' Y( s. A
        .leds = da850_evm_tl_leds,
! N; a+ d3 C* [. U' \, ^  [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. u. s; p4 o- u  [! Z/ U
};, O0 }# T( \! X$ m* n4 P/ F$ y
( S' [1 h0 `( S! F
static void led_dev_release(struct device *dev)  w8 L- C6 @1 n, H) T
{
# s2 C: D  R. x# F. q- j; g};
! x. G2 q( h6 L& F9 Q) f5 Y; K5 L. F+ J) ~: l1 ?( m' d
static struct platform_device da850_evm_tl_leds_device = {& x" M& F% i9 f$ s
        .name                = "leds-gpio",
0 _2 X# U: o, k        .id                = 1,
1 X( B+ M( a, J8 k! s  f' u, B1 ?' e        .dev = {+ u9 P# ^7 v1 D8 L8 P
                .platform_data = &da850_evm_tl_leds_pdata,
3 P; @2 o  }& t! b* g                .release = led_dev_release,
4 a  b2 M: s" H( @        }% V- s) u1 P& a
};8 v! K" T& N  M! v; o# W

2 p; C7 r8 ]/ n/ S- a' xstatic int __init led_platform_init(void): y, v$ x6 W# J7 Q) G' F# }" V
{
2 D2 h  v( D2 G# q4 F        int ret;
/ [: _. j# h( u# }1 G, K#if 0
$ h  q* x0 N- B- o0 D        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 i# w) `( E0 i; |+ k5 e
        if (ret)
2 ~' ^( E) x8 p0 M; ^# r5 w% b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% [7 v( J( S4 S- t                                "%d\n", ret);
, l8 ^* O7 _6 D" S, b#endif0 v1 P/ s3 |1 @6 f
        ret = platform_device_register(&da850_evm_tl_leds_device);3 m. N( J8 H) o1 i: w5 l
        if (ret)5 o  y; k+ p0 A0 o0 \
                pr_warning("Could not register som GPIO expander LEDS");
1 ^0 {2 C- n1 x7 Q        else* w. \0 W) l; _
                printk(KERN_INFO "LED register sucessful!\n");
  Q) a+ T% B, s; u8 K! f/ v
8 r( B0 F( j0 ?. s        return ret;
6 E# m4 b  B) K* y2 d5 ^}
" v) y# X3 ^4 Y0 l) R9 b! T: p5 e8 Y7 a  O$ o  x* d
static void __exit led_platform_exit(void)) ~% |" P" _5 ^# R
{
7 P5 Y3 {) T7 d        platform_device_unregister(&da850_evm_tl_leds_device);
( g% Q" j( E6 ?  H$ y4 G1 M, _& A6 v8 f- S
        printk(KERN_INFO "LED unregister!\n");
2 d/ l/ A5 C& ?$ b}9 C4 s1 n1 o" Y+ y# m/ g) w
& L0 ?& u) ^: M
module_init(led_platform_init);
$ B, b: B- K  T+ \' s2 Gmodule_exit(led_platform_exit);
, n+ }2 ^/ d' I  T% o
! J0 K, Z6 }( EMODULE_DESCRIPTION("Led platform driver");
: n1 v' q" }) G  JMODULE_AUTHOR("Tronlong");
0 ^) f  `6 Q7 B5 U. W8 z" RMODULE_LICENSE("GPL");- I  }  G* K9 I$ a, r( ~% k# p

0 s& i! q0 \, h' B1 k2 U: R& @" Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 19:33 , Processed in 0.033746 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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