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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. F/ ~2 N4 ^7 w/ }#include <linux/init.h>
' T" [' H* [2 s, ]! J! o& X1 v# u  E#include <linux/module.h>+ a' ~% a% {3 d
#include <linux/kernel.h>
$ K5 g: I. z9 r3 b8 r' Q& p#include <linux/types.h>0 x( ^. K; `3 f5 h
#include <linux/gpio.h>' E. V7 I6 Z0 d; D
#include <linux/leds.h>
! n' T: a$ ?. E( U* W, q. v#include <linux/platform_device.h>
7 e3 ~4 J- N- }7 X! r) G
& X: U. l! Y+ ^( `5 J# S( b#include <asm/mach-types.h>
% p- C1 ^9 M" K$ k1 {#include <asm/mach/arch.h>
& p4 {; ~8 g4 T& T1 s7 G8 O#include <mach/da8xx.h>
# P$ W  E7 l5 A#include <mach/mux.h>
2 H1 v8 f% e" G2 A/ d1 |& h( \* j8 F# H$ N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' O- l0 e; v7 ?  K7 V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# R7 i" p1 r# p9 p. P$ o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# C5 i: X- ]; ?; C% J6 B* U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); ~( f# m6 }; I$ |5 q6 ^
8 Q- B1 }+ F, B4 W* q7 s( _
/* assign the tl som board LED-GPIOs*/
8 v8 w2 h. Y$ G1 V  [static const short da850_evm_tl_user_led_pins[] = {
  J6 B! e( O0 Z  S2 S7 a( j9 t: C        /* These pins are definition at <mach/mux.h> file */
- z9 m- {( Y/ C8 F' o6 E/ F! ]' C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 f7 ?2 h8 c! ?( }2 Q/ W        -1
2 c- [" g9 D  g( o3 t7 _2 b};
( m. |4 ^) f0 {; m8 `& d/ _1 v$ @' J( N. M8 M8 s- y" w
static struct gpio_led da850_evm_tl_leds[] = {
. S# L+ [7 ?" I        {+ T, D. a5 {( N* `
                .active_low = 0,% f& U" p9 U  r: q( e, |. l5 b
                .gpio = DA850_USER_LED0,
. \$ q1 `$ g' ~7 A: V2 K$ T                .name = "user_led0",7 X, i& S; [8 N* j6 @. ~  X9 Q
                .default_trigger = "default-on",! L2 D- E2 C5 d0 o
        },- ]1 H8 u$ K# `. Q9 i( h  c
        {- J( N$ m1 m  Y0 [5 a1 t
                .active_low = 0,
! J) c' C5 G1 u6 O; `* A                .gpio = DA850_USER_LED1,
* w5 N, e/ J- v  W                .name = "user_led1",/ E) g: X' ]! H0 {5 c
                .default_trigger = "default-on",
' n  \. P: `" G6 G        },, A2 X, @3 |9 K
        {
3 p+ Q/ q6 @. Z# v7 {$ B                .active_low = 0,
5 I- `; p2 c( P  Y6 k! p                .gpio = DA850_USER_LED2,
" ?# f% f/ L; L: B* C9 c! B                .name = "user_led2",
$ j2 J' o# J+ Q) o. m) ]7 [                .default_trigger = "default-on",
9 y6 x- k# [6 x% ]        },. e; V; h- U1 a; R) F) x
        {4 e) q) B; t6 H- t! \6 @3 F
                .active_low = 0,
+ o' E2 H" d+ w# J* T                .gpio = DA850_USER_LED3,6 d  P7 T7 |( M0 C. W  l
                .name = "user_led3",1 U; D& b/ a; r" B6 N1 m
                .default_trigger = "default-on",
# P$ u- x; j+ O7 z- N        },% t# U9 r; |3 [0 N
};
" ]8 n. h+ [; b& {/ l' s8 f4 }
! L; x# D4 y* u/ N. V7 Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 @9 a; K. ^" F5 V4 ]
        .leds = da850_evm_tl_leds,# P% q- l& W" T/ |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' A! \5 V# l$ \% ?7 P( v# n0 P};8 o  A+ Y5 E8 t& r) w6 u! ]# C0 m

& [2 x# X9 r0 e$ D: Astatic void led_dev_release(struct device *dev)1 F* J: u! A" V6 c: D4 w  |8 O- v2 A
{
3 n! r, o# J* q9 S' T' p};
) p7 Z0 o" m& e& @* r- Y" S8 k: f. Y; y& ]  P4 v
static struct platform_device da850_evm_tl_leds_device = {0 s) ~$ u3 h- ]" h9 {& m" y# F
        .name                = "leds-gpio",
4 E& T, q; |8 P9 `( x        .id                = 1,8 E8 c0 M9 F9 W, z( V
        .dev = {
! {: Q6 R! a0 |0 {( f; R                .platform_data = &da850_evm_tl_leds_pdata,& [2 W+ e6 F5 }1 q# e* L
                .release = led_dev_release,' R5 L5 n7 `  [; f% K
        }  d+ {1 i) w$ G( t) E( @+ a
};
# H+ p# @/ P+ O. b7 N4 W. T( Z8 Z" z1 U# ^0 r; @$ _
static int __init led_platform_init(void)7 K4 D$ ~. E7 T" W/ ]$ N2 o8 D
{
7 Z- Z% [5 R% @6 W1 ?3 R        int ret;8 P* ]4 s: F: W  c9 r9 s
#if 0$ A% R  p# F; b) M+ ~
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 [; W$ {+ S- G  C! a        if (ret), D% U6 v) _  \# a+ U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% e1 T" M5 Z- p/ f7 Q- O                                "%d\n", ret);
; N2 \6 O' t( }! A#endif
! q$ m  u5 e6 u( v# L$ A: ?        ret = platform_device_register(&da850_evm_tl_leds_device);
; [& [6 I- h: G        if (ret)  b1 U# `1 o) I6 z' v" L. F
                pr_warning("Could not register som GPIO expander LEDS");3 v) Y0 z4 l+ G" m* q( J
        else% E* k9 D( u1 F6 [, @
                printk(KERN_INFO "LED register sucessful!\n");  D$ }5 v7 A2 q! ^& Y4 s

& L. g5 A, e1 p% @* o        return ret;5 X' M- \9 V8 r3 h- W6 {6 J% s
}
+ J, ]) b% ]0 w- k7 m2 Z5 h8 |; f4 z# P. O) l4 h9 X
static void __exit led_platform_exit(void)
( B% _& C4 x4 C{4 o% A) i/ d( l
        platform_device_unregister(&da850_evm_tl_leds_device);
, V1 A% o$ O9 A' O1 K$ {" l3 e
( S0 a; Y  `( |        printk(KERN_INFO "LED unregister!\n");; _& _7 |0 I, i# }
}
4 m' X0 p- p; }+ P4 }- m
. I* c0 l7 ^8 O' F$ G8 a7 e$ cmodule_init(led_platform_init);
' o1 Q7 Q/ K. G/ T6 j  lmodule_exit(led_platform_exit);
6 r& O9 i  S! p- j( `* \! y8 b* H" m5 |7 w7 q
MODULE_DESCRIPTION("Led platform driver");
) d8 {$ n4 Z0 G% c2 o* FMODULE_AUTHOR("Tronlong");
7 o! Z% g* m- [$ ]8 b; qMODULE_LICENSE("GPL");
- k# F3 L9 T6 @  q" P$ l# N0 T& V1 J/ ~+ }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 03:06 , Processed in 0.035454 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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