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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  p( P$ ~3 f( S/ Z1 g! t#include <linux/init.h>
8 g/ K2 A8 h5 I  `' F9 h& x" k/ @#include <linux/module.h>
* l$ q# D2 Q, s% v- p#include <linux/kernel.h>7 s% ]! b9 d% w
#include <linux/types.h>
+ \1 c. W, I& {! B5 ?) g3 x, |#include <linux/gpio.h>  {* s. Z2 m, u  C" G$ ?9 s8 R
#include <linux/leds.h>
5 k0 U' T# y" c- j5 e3 K9 W#include <linux/platform_device.h>
' B% }7 d6 K$ d: e; F* Z& |9 \5 f7 {( f8 l$ i2 \) C0 u
#include <asm/mach-types.h>
& `- t2 w. s  r8 G1 C4 ?# ?, [#include <asm/mach/arch.h>$ r7 P( f, f8 U$ j, {
#include <mach/da8xx.h>
- i# e* M+ n1 [( A8 G#include <mach/mux.h># X4 z0 X+ o: n) k& r3 M* L
4 R( c# x7 z- q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 M/ O+ ?4 H6 |( J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! i/ i1 V) F: l6 u- U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). ^2 O$ n+ i, ?% P' m+ g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): t  Q1 T) _5 X+ D; H- q4 O: F) Z
/ ?0 V, o# W3 C2 B" n: ?1 H& M
/* assign the tl som board LED-GPIOs*/
' i8 S3 [- K. |  c6 X' Sstatic const short da850_evm_tl_user_led_pins[] = {
4 @$ C) Q2 q' W1 w" b& ?        /* These pins are definition at <mach/mux.h> file */
1 e- |6 d$ S: u+ C9 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ `- v. K# z) j- u- U; ]- \* C        -1/ u  }" e! N# C  h6 D# c  g9 {
};
  p# e$ V4 i4 R
( Z0 ~5 F9 Y- p4 Z3 W& ystatic struct gpio_led da850_evm_tl_leds[] = {+ A# Y4 w( b4 Y
        {2 v  M3 G' |# I+ Z& @! k; |
                .active_low = 0,
5 a- B$ r6 b2 f+ c                .gpio = DA850_USER_LED0,
1 f- j( {! Z! Y  C, r7 R4 L4 w                .name = "user_led0",
. [8 I2 s+ x4 M4 g- `                .default_trigger = "default-on",
$ m. {5 s. e% F- @5 X8 M* i! @        },
" z, j9 V  {+ l6 J  ^) e8 z  i        {' I2 _% A3 W# F3 d. c
                .active_low = 0,4 f8 n/ d: G4 N: w
                .gpio = DA850_USER_LED1,
) L3 z1 D' x8 \. I+ a; _# {                .name = "user_led1",
( ^6 b5 W( L' }1 |                .default_trigger = "default-on",
" L7 j0 |; l6 N        },
3 [6 N0 N, l! T+ P' F        {1 @5 Z/ W2 |( `- C
                .active_low = 0,
3 I, v# U* ?! h0 {, v' E0 ]8 p                .gpio = DA850_USER_LED2,
; A% b7 n6 B" E4 m                .name = "user_led2",/ g" _/ `( B5 z, X
                .default_trigger = "default-on",1 Z2 w+ w0 `1 A6 B% @' N! _0 R9 }
        },
4 W, h. }/ e: K1 t1 ?/ j4 g: `" s# A        {
& B3 a+ P, G- I                .active_low = 0,
" U, ]$ ^' F* g                .gpio = DA850_USER_LED3,( C" K: _8 u7 J5 z8 ?
                .name = "user_led3",5 w$ P# V6 z' N( j0 q# @- i
                .default_trigger = "default-on",
3 y6 h& ^; J) T/ E0 O7 O3 p9 b        },* t* V' V/ H7 \8 O' m7 C
};( p- y  q+ x5 @2 v- p

% j4 P2 p4 ^$ j6 c' l& D2 ]4 O5 kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- Q) N  {, Q, `- u2 j1 O& u
        .leds = da850_evm_tl_leds,1 v8 l* m% {2 e" t+ b6 Z( j0 k0 j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! i4 U4 n* z* N8 M: H; n) L5 p& Z+ K
};
! u" W( S5 k* a9 n7 w5 K7 [
" d: P1 O0 ~, r* G2 `static void led_dev_release(struct device *dev)
3 a# u- i. r# \5 \0 c{8 d( x, @) J, i
};- O$ I+ |2 e7 U! m# W& E$ o2 N

# A2 b" W# U0 ?) U& \4 e1 Istatic struct platform_device da850_evm_tl_leds_device = {1 A1 i% x9 @: x: e% t3 p
        .name                = "leds-gpio",* x# _) Z) f+ G2 f2 g' V
        .id                = 1," W" B8 l( S$ `) u9 x
        .dev = {
0 F! s: h8 h" m. p" ?                .platform_data = &da850_evm_tl_leds_pdata,
$ C% i$ [+ @' [* H5 W. Y4 a                .release = led_dev_release,
8 ]* ~1 E8 }2 A/ k8 }        }
0 i0 @. V# Z+ z" D) h1 s* J- q5 h};+ h# J6 I/ [9 m. U* @

$ ^8 x4 c) z# R6 f. {, t6 u- D5 istatic int __init led_platform_init(void)
+ n/ @" ^+ R8 T  I5 p{
' o8 y5 e  b$ E. |$ k        int ret;
) J+ B) T7 `+ f$ f: _: o7 }6 n! R#if 0
# Q" Y4 W5 L6 X) h/ M# a) `1 e# g/ Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" v( [9 D8 Q$ G6 g2 J! x
        if (ret)  @+ X! _$ H# [. ~' o: C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ Q. \/ k% O$ T( |5 ]3 P                                "%d\n", ret);
8 T6 W& i# c$ G6 j7 d4 S& O#endif
. v( E& W' l2 g5 I, {: x2 l& n7 D        ret = platform_device_register(&da850_evm_tl_leds_device);% t( B7 r3 C. X- y
        if (ret)
% V) }+ z& R- o( Y* F                pr_warning("Could not register som GPIO expander LEDS");, z( ^) V# ?( c5 R) R/ W
        else
$ H; }+ J' Y- v: e- b' t+ ~3 P4 ]. g                printk(KERN_INFO "LED register sucessful!\n");" f! Y' u! _+ e
/ c( {7 g6 @+ v2 @* b& w4 G
        return ret;
& h2 ~- O! F2 L: Y}! K4 r: n* l$ \3 @9 u: i- C
- _  n. w6 n8 i# K
static void __exit led_platform_exit(void)( E. \3 a# V! {" ]5 C
{
; `+ i5 Q5 |9 w+ v* f        platform_device_unregister(&da850_evm_tl_leds_device);
4 u6 f, k5 M. q" T8 d& e$ n7 q# p* ]% P
        printk(KERN_INFO "LED unregister!\n");+ u8 V5 c3 w' I) {
}) Q0 M- l5 w0 T! c
+ G9 P$ T9 D) [. v
module_init(led_platform_init);
6 W$ ^. p# l/ ^" a/ u& Z( X  P1 @, Vmodule_exit(led_platform_exit);
/ w4 E1 G) V/ p, ?1 k, N! m" X8 \4 G* @3 D/ E1 G! s& M- f
MODULE_DESCRIPTION("Led platform driver");$ |. X0 X+ J1 d3 z& W6 f# F
MODULE_AUTHOR("Tronlong");
. Y+ ?2 M" U8 ^0 V, f* SMODULE_LICENSE("GPL");/ G" x( v! n' H3 I
& _$ g; P1 Z; c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 18:55 , Processed in 0.039044 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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