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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, |  l# `% v4 q  Y
#include <linux/init.h>% [; h# K) l" q' T
#include <linux/module.h>
" _2 O5 S4 m" f#include <linux/kernel.h>
$ ^# |6 z6 S& C0 L4 }0 `6 T' `#include <linux/types.h>
! T' \' b9 A  x; q2 f#include <linux/gpio.h>
6 X* K. _2 ?, O#include <linux/leds.h>
  L- G) A0 L8 h; {#include <linux/platform_device.h>
4 a+ {; f# M, c( ^* {/ t
$ l( C# }  u0 \#include <asm/mach-types.h>
+ c2 Q5 x) ~) o: o+ }& X* {  h#include <asm/mach/arch.h>
$ G& |; O9 e6 K9 k  ~( C* \) y& t& J#include <mach/da8xx.h>- \6 n$ Y2 H6 |- ^  D! C8 J- W
#include <mach/mux.h>+ k  K7 X& b- d4 w9 Z8 Z$ @

6 ~* ^' q% c' z9 F# v% w4 Q# s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# o) C' I$ t! {6 G# `2 i& d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# w8 P! F) z5 ^; f( o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 ?! l3 E1 Y! ]9 ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; l' l% p6 J, g2 j  @$ s
6 H" E& r  H3 m6 S8 k, O3 k7 X/* assign the tl som board LED-GPIOs*/
( F+ q6 p; {5 m4 Z  r/ ustatic const short da850_evm_tl_user_led_pins[] = {
8 R6 k9 `0 r/ b+ C9 K        /* These pins are definition at <mach/mux.h> file */' \& p! D) H; E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% d  `8 i9 j1 N7 z+ ]" T
        -1' t! D8 ]! s5 i
};
( O+ t) J3 o8 l4 ?# y; p
  X* p. S8 H4 ~: L) E5 w# c* ^7 ustatic struct gpio_led da850_evm_tl_leds[] = {
1 |7 J9 [1 Y+ }) I        {; e& L( W7 M1 Q8 E) o9 h
                .active_low = 0,' E5 Q6 p2 O. P7 a* G
                .gpio = DA850_USER_LED0,
" D" I# a" f6 _* x; t. u                .name = "user_led0",
3 i0 f" L/ c3 p2 I0 I5 ^+ B! u1 I                .default_trigger = "default-on",
( d/ G9 d+ \$ H- y+ M" ^. ]        },8 [* v. z4 `3 p- J3 B3 |: _
        {
1 s0 I# C: ^, J# v0 f. u9 V. i                .active_low = 0,
/ j. a+ b. J* A8 j8 D                .gpio = DA850_USER_LED1,
, y  v0 B2 \8 t+ d0 m  d/ R                .name = "user_led1",
& k, g7 M: M: r( f; H5 V% Y+ _                .default_trigger = "default-on",/ H# Z5 L6 a/ |6 a3 F! e1 P
        },
4 ]9 @! u- `* [2 }# z# r        {$ g: J. G7 F" w
                .active_low = 0,! ~4 e& Z0 \6 c+ k
                .gpio = DA850_USER_LED2,5 l8 Y5 H2 Q+ n' Y# d( R+ b
                .name = "user_led2",& D% ^/ ]8 O" a5 k% h
                .default_trigger = "default-on",
" A# e: M! o7 k5 d        },9 g( Z! y7 [3 N8 [2 Y
        {* R6 A; I6 [0 F2 U! e+ t
                .active_low = 0,  ?+ e8 j( Y7 `& N6 K: u
                .gpio = DA850_USER_LED3,& P! q4 P4 e) q- ~$ R; \
                .name = "user_led3",
8 i+ z8 J4 P; R) r                .default_trigger = "default-on",7 O! r0 Y: }! ]  u; h
        },
& x! p, o0 p2 p& h' x& Z9 J! S};* O; x) O( e! \8 |: ~, p& I
; j' V5 ]3 Y2 }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 i9 g7 u' B! Z7 i8 }
        .leds = da850_evm_tl_leds,
5 S+ ]% E) i( |7 h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, Z: n9 Z3 G* X; A# q
};2 s9 M2 s" v. Z* y5 \4 R2 z. L

( a% \4 ^* p1 E7 k& W4 _& Z0 M2 ^static void led_dev_release(struct device *dev)
  `9 y, f) V2 r2 Y6 t7 P  k( R{- {& H# e7 v' F7 x
};7 _& V  {+ S" m. a( R" v8 O
" D) K6 ~" F8 a7 Z
static struct platform_device da850_evm_tl_leds_device = {) P9 R9 c1 J* [* t3 ?
        .name                = "leds-gpio",4 c. R' s+ T6 B$ I+ ~" r
        .id                = 1,
+ e" @+ V: R6 }+ ?        .dev = {
8 G: O  x% S! ]" P                .platform_data = &da850_evm_tl_leds_pdata,: S& J9 [# M3 }7 S! R  C3 L
                .release = led_dev_release,' s( ~' O* L5 y' ]
        }
' ?4 @8 Y6 S' X3 }};) Q: O7 U% ?* V8 F; K
4 E: W1 U' v, n: l* r) N0 w2 X9 g
static int __init led_platform_init(void)- O6 `3 V6 E2 _/ f  v
{
; P: J: [5 ~% Y- U8 \) U        int ret;
4 l0 @1 \" r: s; h7 l. W  O+ D0 N#if 06 z& T& W) ]; E* c( V2 {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& u) \5 R. t4 ^        if (ret)
+ q8 u4 V; |/ z* G                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! P- T+ B# e3 G' ]  o1 F
                                "%d\n", ret);
0 E+ m* d( H9 |* ?; [( G#endif! ?0 D/ n4 K  U
        ret = platform_device_register(&da850_evm_tl_leds_device);
! n( }7 y* e& S/ P        if (ret)2 e4 F" p* L, `* v/ z
                pr_warning("Could not register som GPIO expander LEDS");9 D0 _; s1 F( _2 h! q2 d& \. X
        else
% q, @" u3 q+ A4 r2 l                printk(KERN_INFO "LED register sucessful!\n");) ^' T# U, [9 _1 }4 o7 S

3 [5 F4 a, C2 `2 Y% ?& y: X$ U' g        return ret;" \4 Z: \9 q% X' O# v! |  V; Y
}4 i! [- P1 B1 v- C8 h) ^# b

% v. a: `: ^2 W$ g# o# Nstatic void __exit led_platform_exit(void)
& x" {% P% z; V' r, a{! X: {, E' w; _" v
        platform_device_unregister(&da850_evm_tl_leds_device);
) }& Q1 b( a( ]! C; @. k3 I2 J, \6 P5 ?" q8 o* I5 L
        printk(KERN_INFO "LED unregister!\n");
+ `. s9 W) P5 T( Z  e$ ?* q( m7 S}# T$ @+ |/ r6 z/ c4 J0 W6 B' ?8 L
- c) s& b' k$ w7 j! z1 U# b
module_init(led_platform_init);
' u  Y: g8 X- X# b8 r' Y/ amodule_exit(led_platform_exit);
6 i- z7 K, W# |% x1 J" n
0 o9 |6 {0 W# Z5 v; }MODULE_DESCRIPTION("Led platform driver");
; K* D& G% `9 b6 x0 ZMODULE_AUTHOR("Tronlong");$ K% l3 z+ [; F8 u& c
MODULE_LICENSE("GPL");
# ?+ R( K; r3 P
+ l0 t. }1 P3 {+ W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 15:00 , Processed in 0.053889 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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