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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. E3 s( T2 E* I#include <linux/init.h># U# Q( @4 A1 ]; K7 Y  m) h' _
#include <linux/module.h>: l3 T7 G6 C& B) Q
#include <linux/kernel.h>
9 b9 C& t0 `0 }/ r! k8 h#include <linux/types.h>
0 o5 z1 s* E6 S  k4 h: ^#include <linux/gpio.h>/ u$ s0 L: J( P- Q) ~
#include <linux/leds.h>
. ^; b5 N  |. G. \$ f, Z#include <linux/platform_device.h>! V( u$ G7 f0 q" u9 b" H* P

9 [7 q- {% K: V9 l) T  K#include <asm/mach-types.h>4 r9 V0 t+ V% ^" g
#include <asm/mach/arch.h>9 ^5 F6 Z3 G9 `! v- ~, C
#include <mach/da8xx.h>1 q- F4 u, j8 t: T
#include <mach/mux.h>6 ?. C3 o9 N/ O4 M3 z  C9 ?6 |
  c* u8 a7 k9 B5 P; U' ]# s
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ l, x1 h' L" b% \  h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); k3 T& h3 J3 d
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  ]9 Z- {/ X; J& w$ F
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 k( ^  L0 y0 H

7 z9 v: V) a  F) k! m/* assign the tl som board LED-GPIOs*/) i! W' ^1 Y  C. P& v
static const short da850_evm_tl_user_led_pins[] = {
3 b, h) i2 ^! _& z( o( R- ^3 D- X        /* These pins are definition at <mach/mux.h> file */
8 L  ^3 w. w- M* e5 x3 d; u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 K- M. r" ?' _' {6 |0 l
        -1
, c/ |2 p* i; ?7 x8 l" E};- Z) N6 \9 Y. i8 _
7 Q, c- z; K' |' Z0 B
static struct gpio_led da850_evm_tl_leds[] = {- d, d) _. K$ Q- g  \$ ^8 m0 D- G
        {, b, n, c- y" h3 X( u
                .active_low = 0,
4 M. Z- [3 c7 k0 o                .gpio = DA850_USER_LED0,
' y% D7 i+ C+ e: T                .name = "user_led0",
3 O( V- P( `* I* x$ ^& R                .default_trigger = "default-on",
0 ~+ O- \9 o. c3 d7 I0 T        },  Y3 v. P7 k# w- D( I
        {  I! f( z( w: `8 \6 W( ?  s
                .active_low = 0,
8 K8 I' {3 M# Z                .gpio = DA850_USER_LED1,
* S4 @0 K  v3 I/ M1 y& r; K                .name = "user_led1",
( F9 ?) ^4 T! y& X  K$ T+ s; H                .default_trigger = "default-on",
7 r: o! S! R# H4 p% {- W        },
0 X8 |$ G8 K2 o9 X" `        {$ e% }8 n* J2 L: u  T* P  l
                .active_low = 0,/ W9 I* ^' d7 h' S' e4 O! d
                .gpio = DA850_USER_LED2,
, N- @% D  R% m2 m! L( z9 H                .name = "user_led2",
) _6 r4 h% Q6 \$ S                .default_trigger = "default-on",
3 i8 ]& ]8 _9 D4 [0 v5 e. D        },1 F2 L9 g+ E3 J( X
        {
' _( w# t. N* z8 u' F7 b' U                .active_low = 0,
) p" d: ]# g3 D# Q7 `                .gpio = DA850_USER_LED3,
9 ?5 z- {3 j$ `% y% R0 @2 m5 h) l2 x                .name = "user_led3",
$ @; w" Y3 q0 V( b1 K% z/ Y/ x                .default_trigger = "default-on",: p: g- E& J* m, X$ b
        },4 q! [" ^; F+ D9 t  M$ B# o
};
2 V# T9 f: r0 C% [
  I9 H! @" E5 i8 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; }6 [& z1 n/ F! H        .leds = da850_evm_tl_leds,
9 n5 g1 z. z/ c7 y; F. X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 ]: y: V# I  k" p2 _9 g
};
6 I5 X1 ~- A( L+ e; i! O, r: \2 a$ ?
; W  C# n. _7 p% {' g& |static void led_dev_release(struct device *dev)+ y* `$ z6 ~* H7 l# T& p
{, ?7 L1 `8 q1 i- u- ]" ~
};
% k" S% K1 w- i3 ~) U5 d# G. X7 t# g$ J* d: l
static struct platform_device da850_evm_tl_leds_device = {/ b, p- [! _9 Y0 _$ i
        .name                = "leds-gpio",
# R8 @5 K# Q, z: j, A8 c        .id                = 1,8 \. @" F( |: F. V0 c5 q" x8 C% Y4 y
        .dev = {
9 D) P6 A1 B9 U0 Y6 A& j                .platform_data = &da850_evm_tl_leds_pdata,2 h5 ~, l: d1 W8 _  h' y/ L
                .release = led_dev_release,
$ S, J  @5 E8 t4 F        }
- o8 X- z$ d' V* B6 |};
. _# m% [  h5 [( v- y" r& O7 X1 Z( {2 n. j8 t  d2 I
static int __init led_platform_init(void); N$ s7 m- p$ v
{
0 ?4 g1 [2 ^+ p; A* c* _        int ret;
/ F6 E0 ?, J9 t- ?% f7 Y. i#if 0* L6 ~" ]' G/ i7 O, q$ k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 p8 X7 c; E% Q: r0 ]0 Z
        if (ret)
! X  B5 [1 N" B+ h0 X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) U- f$ E+ s- O' F1 ?  q8 I                                "%d\n", ret);$ v: a: i% v9 H$ J) o
#endif
2 f2 a' T9 T. i8 Z- E' u        ret = platform_device_register(&da850_evm_tl_leds_device);
& [/ R. b) x$ p2 a! H        if (ret)) W6 ^% \+ @  C- Q$ @
                pr_warning("Could not register som GPIO expander LEDS");& ]& M6 }0 x( L4 A, M) k  U
        else  V8 O+ m# [) H
                printk(KERN_INFO "LED register sucessful!\n");
/ \4 z% |& T& C* Q: a# t" ^8 O5 o. O$ Y2 D2 _6 C' R# f7 D
        return ret;
' D% L1 @$ H8 L8 k& N9 o0 W}( k7 A# B) I/ A4 g. I1 M
* ]# f+ X# h' B+ e+ L, d5 q, D) K; B
static void __exit led_platform_exit(void): F6 _9 T5 W* \5 K) X+ E  g- J9 A
{
% f$ w* t& f0 P. e" r6 p5 Q        platform_device_unregister(&da850_evm_tl_leds_device);
2 T) D, Y& S3 F
" l- J. k6 \6 f/ S7 W        printk(KERN_INFO "LED unregister!\n");
$ j3 s. ^/ y$ J! `" t! a! y% I}. y; U0 m; k6 v# n. n
9 D4 A6 I/ M, B8 [" I, ~
module_init(led_platform_init);
) j2 U8 U" B4 U8 }" b, I% x( ]& amodule_exit(led_platform_exit);7 F5 S! u+ A. r( N4 r4 H

% ?! G8 A9 l' M. _4 \, @4 LMODULE_DESCRIPTION("Led platform driver");
, P+ V! n7 ]' o9 IMODULE_AUTHOR("Tronlong");/ f+ C6 \! U/ e2 L' s. e  F
MODULE_LICENSE("GPL");0 Q4 w5 L- \* l; C) L5 i
% `+ g9 P/ O2 [+ S6 f7 _. X' z, w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 12:08 , Processed in 0.037508 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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