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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) G( K- j) R% U  v. w
#include <linux/init.h>
+ v# l6 a- W5 A. R#include <linux/module.h>- y2 }9 Y: `5 A* ?$ H
#include <linux/kernel.h>
* ~! C# X$ a1 k" s% a( t#include <linux/types.h>
- z2 g6 T; Y# K" I9 P  T% `0 w#include <linux/gpio.h>
5 v, V6 \: ^1 n5 K0 l#include <linux/leds.h>
+ \! l: P4 J( ?9 ^" s. M- i#include <linux/platform_device.h>1 n8 O4 n$ F9 J' V& J  n% d

- B4 w0 T8 B* i7 Z/ ^#include <asm/mach-types.h>
2 o. l# k- A( O: u6 P* c# f3 k#include <asm/mach/arch.h>4 U* l+ v' ~' P- l
#include <mach/da8xx.h>
0 [( p7 t( b9 r+ b#include <mach/mux.h>
4 a' ?( c" \+ R6 n! V
- o6 Z3 M+ x) i; r6 F! p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 J2 ^5 p) }9 o, _' W  f/ J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 g* M& }% m$ |0 d+ T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 l% o0 c8 c+ L- F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 y8 @$ L! U% g% I& [6 Q% F( n% o+ r/ C- U& n  R* L
/* assign the tl som board LED-GPIOs*/( y$ I" v( h: K
static const short da850_evm_tl_user_led_pins[] = {
3 A3 K6 G+ j# |: v! |# S/ Y( _        /* These pins are definition at <mach/mux.h> file */
! s& Q8 [3 |. d4 F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' ]( m' p; ]- [' t1 i: r, W
        -1) l) x( w% O, Q6 Z) P8 G
};5 f5 k$ `/ r3 z1 w/ h9 g

6 h! z, G! ?# ^& z' C! O# ]: _5 ~static struct gpio_led da850_evm_tl_leds[] = {; P& d3 D. \8 k7 d; p4 {
        {, _. I7 K. ]9 o: k. v- [
                .active_low = 0,
$ s  H  u7 E. R1 ?                .gpio = DA850_USER_LED0,
( \/ j2 Q4 W" g                .name = "user_led0",: @0 K7 ^  S! Z; ]% c! y! B
                .default_trigger = "default-on",3 V& B$ s) X2 ~6 {$ Q; j3 U( o. w
        },
7 ~. s1 _7 G3 ?" X        {. X# z2 Z) }9 ?4 H3 {( a# j0 O
                .active_low = 0,
  N8 E; C' m2 x+ I1 o3 _8 T8 {                .gpio = DA850_USER_LED1,
% o" ^( L5 O% p: j7 w4 h                .name = "user_led1"," Q) d" ^2 S( A
                .default_trigger = "default-on",/ O1 D, q) n0 a1 Q- F, u# u
        },
4 U: i1 y( K$ H4 l- U; o( O  ?! y" _        {" i, A0 V0 T! E! C1 n6 ?
                .active_low = 0,
$ @+ e" b! O6 o6 X                .gpio = DA850_USER_LED2,
. D+ y- B! i" e% h                .name = "user_led2",
& H5 m6 k2 A4 D9 v, U                .default_trigger = "default-on",8 S# A0 a0 ]' j
        },6 ?5 }; p7 q$ ^/ Q+ h
        {% K4 ?+ e6 E. ]) B2 c" l. Y
                .active_low = 0,
( m* R9 W6 V, K' A; F- ~% O                .gpio = DA850_USER_LED3,
" ~- U* G$ f: @( t5 M* k                .name = "user_led3",
% p' Y! y5 \2 W0 E! B                .default_trigger = "default-on",0 z" y& x/ f6 m8 F& A7 p5 X, a
        },* v/ g# H( g. d& o
};5 K( d9 |8 y" q2 R$ C9 Y

. T! F9 g9 Q: F) @9 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- Q  t2 W. {2 D* ^1 H2 f        .leds = da850_evm_tl_leds,! G$ o) V: E6 c( m& G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) ~& E: ^: n0 ^, [! n0 o
};
5 M8 T: x. I; O% Y1 e) h$ K1 U' _& v
static void led_dev_release(struct device *dev)+ ?7 p' _% U/ \" V$ a7 I
{
! w, J, q% t% g) x};
! I  y" k7 t4 v( W7 f' E
9 F8 L5 [" k9 j) ~static struct platform_device da850_evm_tl_leds_device = {
1 C& @# ]! }: e0 H# e        .name                = "leds-gpio",5 j; \. u+ M+ H1 L3 u; m
        .id                = 1,
8 a0 w4 V, t- z        .dev = {
& k2 q: I4 b5 O# b% o                .platform_data = &da850_evm_tl_leds_pdata,3 A; Y8 J5 n1 C; k- Y) r. w
                .release = led_dev_release,
" o% c! B9 x- l* [" P+ W$ {7 |/ P% g        }4 \: z- m9 ]* }; [
};
; I& B: j9 [0 P! u, d8 G, B, l
+ X. s) R4 N& e* c# estatic int __init led_platform_init(void)
8 q* ^2 Z- D, u/ R4 j- [' Z* i% Z2 m{
, N: ?. F3 X# `+ e0 D        int ret;
. U. ~- W; [8 D8 f4 k0 Q/ U4 D#if 0
+ T; Z% R& R( J4 u1 S6 Y1 K$ `: r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 A& q8 ^( V+ @7 E' @        if (ret)
5 I; ]$ e) u0 v* @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ P. D2 @5 s3 l) C1 A6 D* @
                                "%d\n", ret);3 X% H! N; C( C7 X) H4 U( w& L
#endif
- S: M. t( |( Q" U1 Z2 M: s        ret = platform_device_register(&da850_evm_tl_leds_device);
4 K- F9 x5 c! F7 s% f        if (ret)% {' u: s; [+ f2 x; Y2 R. y
                pr_warning("Could not register som GPIO expander LEDS");
8 }- S6 e5 C! V4 C        else
+ ?( ~. g( r1 D/ c: M% N% n                printk(KERN_INFO "LED register sucessful!\n");, c7 g, y* n2 D6 y: {5 S5 j( c

% U7 \, t3 [; p9 t        return ret;" ]# P$ i, D% A, H& e- K( v
}
; f0 h. q: }- s# A5 {# e9 O3 ^
' D7 O& ^/ t8 G5 H- hstatic void __exit led_platform_exit(void)% M) j0 x  L8 {1 L/ D3 |
{
* O$ N+ e: M" l2 \2 _7 V. v        platform_device_unregister(&da850_evm_tl_leds_device);
2 z6 R. F+ G! B! j% `0 p3 K2 u% n2 v% M: I. I9 _5 ~) X" e3 W
        printk(KERN_INFO "LED unregister!\n");; ^! _! p/ m- c8 Q: ]
}
9 A# }$ E4 Z* P2 U9 }0 Y* B/ Y7 \! u) K' @5 [' `9 Q* I, \
module_init(led_platform_init);
( W' J5 @% m2 Hmodule_exit(led_platform_exit);8 L! n  i1 ]; U' u& d
* z, R* e7 Z) k8 g: ~- b
MODULE_DESCRIPTION("Led platform driver");, K" w7 m( p- h& y. U3 F" B' L
MODULE_AUTHOR("Tronlong");: ^$ K, Q$ R) e% K  u, H
MODULE_LICENSE("GPL");/ p8 i% w8 E! G4 K

* M* l8 i, [4 h$ B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 18:45 , Processed in 0.041936 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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