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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" e7 l1 X5 Y" v  [2 O: O#include <linux/init.h>8 c: p; i, B* q) ^
#include <linux/module.h>* H- `( g2 J( F
#include <linux/kernel.h>& M+ L! K+ w5 Z/ c
#include <linux/types.h># W9 T/ A7 P, }8 F/ X4 f; L2 p& f, @
#include <linux/gpio.h>% {8 c) E. A' d
#include <linux/leds.h>
6 k# y( V8 e3 f3 Z#include <linux/platform_device.h>
% Y+ S! I, {6 X+ a, H) u
0 `% L* p& Y& d  v#include <asm/mach-types.h>
9 |4 W% a+ d+ a, o3 u& O# }8 @#include <asm/mach/arch.h>9 |$ t& d9 y; }% x
#include <mach/da8xx.h>
( q' Z! g8 s% j#include <mach/mux.h>
( U" k, a( \/ U3 O% @- X6 X( C" I$ f5 W7 \& i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& L# s7 N( v' d. z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 `5 v2 U& n( {6 I) {( j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- j5 l( O3 j4 h3 K  d#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! M! b$ @- X  {- i' n; l) p- ^+ l8 M6 J' q% F. L
/* assign the tl som board LED-GPIOs*/  l+ Q; N5 v; m7 d# G# e
static const short da850_evm_tl_user_led_pins[] = {
2 d& f, _( y$ A% j- n        /* These pins are definition at <mach/mux.h> file */
6 S! w5 X4 @1 Z5 b( |9 S. c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 z" _% m2 b  ^  w9 Y
        -1# h/ R; `# f/ t) \# U$ P
};; I7 ^( Z- O/ ?% O+ d  S' T
' H7 _" y8 D- x% `3 S' T/ u
static struct gpio_led da850_evm_tl_leds[] = {( A% ]8 w4 U# p. @
        {
8 s$ J7 \7 x9 d                .active_low = 0,
& o' w- S2 d, R/ E6 f                .gpio = DA850_USER_LED0,
  {. u* W+ G$ w8 a3 h5 c& I2 R                .name = "user_led0",/ c2 o. \2 ]9 ^5 d: C, E$ _
                .default_trigger = "default-on",. q3 w# ^, R, I3 X6 r7 e( u6 R
        },
, v( y. t& _4 g0 g1 {: t1 h        {: {/ u- N. m/ W8 n
                .active_low = 0,
& F6 O) Y5 Y* t/ K+ m                .gpio = DA850_USER_LED1,; [5 A( b9 ^2 W' r4 o
                .name = "user_led1",
8 T5 [$ Y) Z" A7 P                .default_trigger = "default-on",! r9 k2 P) P8 O9 q9 q/ N
        },% Y% \4 v3 H8 R9 u7 `. o
        {
1 B/ g. T  R6 A                .active_low = 0,
  M. B* l3 y5 ?" r2 S  p                .gpio = DA850_USER_LED2,9 {  j/ q8 P2 _2 I: J2 _5 I. j
                .name = "user_led2",
# ?5 L/ J$ Q% T1 u                .default_trigger = "default-on",
, |. J) [) c9 ^        },
! s) H' m* @" }7 p        {6 W& s2 t: M1 z; ~8 A: }0 E
                .active_low = 0,
' [# S$ D' X( H$ t) P- E6 p                .gpio = DA850_USER_LED3,8 ]4 `3 M- D* K; a4 o
                .name = "user_led3",
/ x% V6 Q7 T: e9 i3 b* Z& I                .default_trigger = "default-on",
# `2 N4 }2 \- e3 m7 ^        },' }. V! [( |) o4 n! Y
};
7 a0 g5 @' k, F  C9 j2 z
& j1 m" K$ P1 q# T6 B+ E, Y7 xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ s. e" Z  i* G- E        .leds = da850_evm_tl_leds,
: W. W* R' q+ {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 ?- F7 N  @6 P6 g/ Y0 Z
};
" q$ @9 q5 q* @' m' m$ P5 R) _+ g7 V" g4 A# X6 |6 s
static void led_dev_release(struct device *dev)* T# [; N8 g4 D# A
{0 A, T3 `7 V0 W# t& w/ ]- |
};
5 y, B" t+ R/ `' i
& [4 Q" n* `% N' }; x/ O4 _static struct platform_device da850_evm_tl_leds_device = {7 S& g- V; K( ~* x9 _0 j. }3 s5 C0 V  \- ~
        .name                = "leds-gpio",
% r9 u* T6 E$ e1 Z        .id                = 1,
  u! q5 I; C6 w& o        .dev = {
4 L& q3 A0 `0 t  ^- k$ d8 ^                .platform_data = &da850_evm_tl_leds_pdata,
- k- k5 H% }( S7 n4 c( x                .release = led_dev_release,9 O/ Y  B/ ?# K
        }5 x) f! o1 g! M% F3 Y
};
$ `0 a+ {! q; h6 {
+ H; `4 r  w  m) g6 G) r0 Lstatic int __init led_platform_init(void)
" H8 G  M4 ]7 \. k% U, }{
' d) t! x5 [' M2 L) n        int ret;& [/ h% O5 P. |5 l1 j. r
#if 0& U: O% i' F* Z8 N7 o* R+ W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: e' p0 P, k2 c6 a3 b. j6 a, G        if (ret)! k: y6 a; Y7 J# k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# P& N. A' `& T  L) b
                                "%d\n", ret);
+ W, `  g7 _1 b5 p9 w#endif
, ]' \% }. L! k% p6 ^" T        ret = platform_device_register(&da850_evm_tl_leds_device);
/ ?, `. }9 I5 R+ t        if (ret)
0 Z0 N- [0 `1 |, j                pr_warning("Could not register som GPIO expander LEDS");
) N# V$ l. @, l2 ]' A3 W        else- e" a: O- [6 A" h& R! s* }! ]# Y
                printk(KERN_INFO "LED register sucessful!\n");
3 W% H) B# U8 m" y7 [" \7 P$ r: |
) }  ?9 [' v( I2 Z1 w2 @9 w        return ret;  l/ e( n( f4 \: L+ N( x
}3 `5 ]* I6 R/ ~/ r! {# N4 S
/ G! E& q3 t$ F! D0 e9 L8 L5 \+ O
static void __exit led_platform_exit(void)% ~: l+ f- N" n  P5 D
{
4 ^8 n5 s. u' c; H0 ~' P' z6 T        platform_device_unregister(&da850_evm_tl_leds_device);. i, m' o$ X' ^
. A, {+ d5 S& w
        printk(KERN_INFO "LED unregister!\n");
& H8 U5 c( B: Q* e" M* F9 X}
$ v, X& ]% }/ ^) k* U. C5 `+ g# M+ U+ D0 F1 I
module_init(led_platform_init);
8 b# G2 S* L* t7 W. \module_exit(led_platform_exit);
) [3 p, T2 D: r% J: g  ?; S/ \3 P3 Z% {+ z2 {* o! u& p
MODULE_DESCRIPTION("Led platform driver");; J6 A& j1 t/ }5 Y3 p: ?
MODULE_AUTHOR("Tronlong");+ Z& Y) m+ j5 l6 `3 `+ T
MODULE_LICENSE("GPL");& y  u, ~* y% n0 b4 \

# x) @/ P: }, G9 U6 F- ~/ d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 11:34 , Processed in 0.037655 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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