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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! v5 u* H. z1 N; l1 l7 @' {3 x3 f#include <linux/init.h>- y9 |. ]+ Q" q7 A  ^4 B( R! {9 u2 a
#include <linux/module.h>
% {+ x5 A+ r& q3 C$ Y2 n, S) V( i, M9 |#include <linux/kernel.h>
$ ^. r9 f2 }0 j) O+ R" C- r#include <linux/types.h>% S; ?% G. b: p0 o3 f6 ^. V4 q. Q: `
#include <linux/gpio.h>
, A, s, {, [3 u9 N( p/ E#include <linux/leds.h>& P( _1 I2 ]% L9 r# `$ K& t  T
#include <linux/platform_device.h>
8 p" L: @! Z+ ?1 D' K1 O5 H0 l# A# L0 Z* h9 |- |7 [0 }, m
#include <asm/mach-types.h>
- E4 [' G. b9 G#include <asm/mach/arch.h>: G! {; v0 ]3 Y$ S; K! k
#include <mach/da8xx.h>
* s  D, I9 ^1 a#include <mach/mux.h>$ U7 \3 }: \: d3 W8 s1 b
1 ^% `3 |2 j$ y6 h9 b5 x0 r( T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* x2 u8 X& R* c5 p" ]$ W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 P- v6 {: a& ?1 K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ p- P/ M% Q- X: u2 s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 c8 t+ M7 X. {2 w, `& {
  x7 w; M/ {, Z0 j; L7 R% u: r
/* assign the tl som board LED-GPIOs*/8 m( O1 C  r7 Q+ j& ^1 f) y
static const short da850_evm_tl_user_led_pins[] = {- m/ W6 K( O- b" Z' z$ O
        /* These pins are definition at <mach/mux.h> file */
1 j2 w0 k+ p8 b8 u7 ^; b) a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, _/ S) K- |: j. u; g4 ~: s; M        -15 D& n6 ?/ \2 r# |
};9 g8 n+ Y4 E$ d: W" p; f

- y/ b! c8 z2 g  V9 `static struct gpio_led da850_evm_tl_leds[] = {
$ ^) }  v$ z9 o2 L        {' ]3 q: D, l( p2 ^! j
                .active_low = 0,
+ R- x( }3 P! ?) `  x" X                .gpio = DA850_USER_LED0,- e& h( y6 W2 C; u2 y/ t+ _
                .name = "user_led0",$ e9 Y+ w. g% c& @% I6 V8 _8 K
                .default_trigger = "default-on",
3 d. r8 W6 i4 O" ]8 m8 A        },
* x, Y' f. o) k        {5 a& m: g: \" e. |
                .active_low = 0,
( P' l& G: T( }1 L  e- S                .gpio = DA850_USER_LED1,0 `/ j' r+ `/ I
                .name = "user_led1",
. n( \  v& n; P9 N$ X! k                .default_trigger = "default-on",$ k8 r$ `, d% s! n( C
        },
, M. z& Y6 p: E( w- u# m, l        {: d& G) ?$ V" e1 B0 L# T( i  H6 E
                .active_low = 0,
) }1 Q) Z8 z% [) r2 f                .gpio = DA850_USER_LED2,- Z7 E1 z) e1 O* r1 ]. z+ `
                .name = "user_led2",0 b2 q/ @  u, ^; y7 G3 k7 R
                .default_trigger = "default-on",/ E' f7 ~/ U9 g0 K( ^  `
        },
* l7 z6 f4 Y* M. [% I- U+ b        {& Q& B* q8 M; M; B% z
                .active_low = 0,, b- Q/ e2 d) M" s. y' t) K
                .gpio = DA850_USER_LED3,
- m9 w4 @) f# _9 u2 }$ C: m* W                .name = "user_led3",
5 M  |# d9 r- P* ], A                .default_trigger = "default-on",
5 P; J! p, l, e' D* }7 k        },$ i3 ]! P3 j: d3 }3 M
};  M6 L7 a9 F) y) W

) M# n  O7 p' Y/ t9 [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# h8 N' F! l7 Z5 r
        .leds = da850_evm_tl_leds,2 g+ X0 W' p  _' p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* X0 |/ ~. s. V8 i+ \. n7 v% N};
2 U& Z: S4 h* t# p
! x7 z+ _% S4 Ystatic void led_dev_release(struct device *dev): l5 w3 M$ R; O! o" |6 V& B6 ]; i
{0 w; }* N  ^: S: R# S9 m
};
" Q7 K% K% P. y( H0 D% s/ W" o7 v+ J' J* O  l
static struct platform_device da850_evm_tl_leds_device = {4 d. b/ |& ~2 }3 s- Y/ a
        .name                = "leds-gpio",' C/ N8 W- }6 M# F: V
        .id                = 1,% Q' D* ^0 r) c: ^" ^( f& \
        .dev = {
* V. {! ~$ z2 C1 I5 u# R, m+ R$ v                .platform_data = &da850_evm_tl_leds_pdata,
0 x4 u( F4 I6 _# b% w                .release = led_dev_release,* }5 M! u, Z3 [( _; e0 V) |
        }
+ i  s, N' ?$ T+ S3 `5 M};, I- ~# s, w& p' h
% j) b( K# r( y
static int __init led_platform_init(void)& H- H; Q  H  }+ ]4 s- L( z$ N
{
4 W. d, v: J1 q+ Y! _7 c        int ret;
" |1 k7 j7 o7 m; M. a#if 02 v- J( L1 f! _, {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- C; m; y3 W# t; b1 Q- D        if (ret)
3 b$ T% I& m  m8 `# w3 F! ~4 t7 N- B                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": l7 [# l9 U4 a: }
                                "%d\n", ret);
# @- p+ @; m- \- ~- |( p4 y. t#endif+ F8 X7 J8 N, m* w& m( ]* E4 M- c
        ret = platform_device_register(&da850_evm_tl_leds_device);
" F* }# B) `% q; n        if (ret)
2 R9 P( y' y$ D0 ?                pr_warning("Could not register som GPIO expander LEDS");5 J9 w7 L; A3 E" G
        else
0 m& w3 b* ~0 D' n                printk(KERN_INFO "LED register sucessful!\n");) H6 \: p2 n! \
; g4 u& \  E5 o0 p% [' _
        return ret;
2 }  \$ v+ E/ j  R}! C( }5 g: |1 c
( Y! ^& i9 Y) ~6 j2 R
static void __exit led_platform_exit(void)
, q( F, X3 R6 n& s; Z4 i: j{
5 [7 l# X: F9 `' T( _5 f        platform_device_unregister(&da850_evm_tl_leds_device);. U* v, a3 j2 C
/ C( h3 D/ X7 K9 H# q
        printk(KERN_INFO "LED unregister!\n");' M+ W; y; l# S; U$ z; t
}
8 Y8 p5 L* B$ |* f2 a+ k' a  S3 _
module_init(led_platform_init);
5 l2 ?$ `2 w" Hmodule_exit(led_platform_exit);. t5 u( E! j5 z+ V
1 x! M& c% x( ^0 s: F
MODULE_DESCRIPTION("Led platform driver");0 K. r# s) |; ^9 _8 X7 H  k5 s
MODULE_AUTHOR("Tronlong");
$ |- r. X! f* B) ?, K+ O4 ^MODULE_LICENSE("GPL");2 u' x( y5 w, R, Q! Z7 D; f

3 t% n0 f9 x  K* b% R4 {) e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 18:40 , Processed in 0.037771 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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