程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 `+ {% q( Q2 E& h6 V
#include <linux/init.h>+ A, E) R, P9 H- f# C
#include <linux/module.h>
% |  ?2 v! H' C8 O! _#include <linux/kernel.h>; ?+ [" K$ F2 X2 G, s
#include <linux/types.h>
9 f! x/ ^! }! l#include <linux/gpio.h>( S. V& p8 Y, i. u# x# o
#include <linux/leds.h>
7 {, `; l4 z$ g2 J/ k0 `#include <linux/platform_device.h>$ z2 f$ C) @) {9 @9 ~$ Q5 T
  {3 d2 Y$ m( p; V
#include <asm/mach-types.h>
# t5 \- D8 i$ ~# S% d  L9 v#include <asm/mach/arch.h>
2 n4 l: e% `# |% y5 S1 X#include <mach/da8xx.h>& ]( k  ~" M3 }# i0 x
#include <mach/mux.h>
7 ^% N! N6 @; k( H
4 I( W) v& j* M! ]; Q/ e( P, j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 C5 M4 k/ M. l; d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 ?$ o8 g1 ?7 K1 Q( x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 i3 h6 J' N/ T7 [2 s: A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& i, D( z, Y' D1 q  h4 y7 {& W  f9 Q7 z! t/ {  p5 P4 A0 _  E
/* assign the tl som board LED-GPIOs*/
# z% ^9 u6 `1 y$ \: h4 Zstatic const short da850_evm_tl_user_led_pins[] = {
7 n2 r" B* ]. \9 P4 C9 A        /* These pins are definition at <mach/mux.h> file */
" A% d- L3 W. X8 V, W0 M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% j# M3 V9 W5 T: M# {% |3 O! Z& f7 K        -1  r9 d6 z+ n( S$ T; d! Z
};
  Q9 `( b( y( p# o. _- p# z! P
, e8 R+ j2 t$ l1 _static struct gpio_led da850_evm_tl_leds[] = {
! q" k: B3 D. T  A# h        {+ R  G* i8 A$ i( m  M( b( s
                .active_low = 0,
1 s& `# H* D: R5 |( D                .gpio = DA850_USER_LED0,
) i1 r# x3 E& R0 h                .name = "user_led0",9 ^5 K6 J) b; D  H( s8 Z
                .default_trigger = "default-on",
7 g1 r+ i4 K6 F" k: I        },* Y( e4 E; v# Z$ F
        {
' ?3 j. c$ i' `& A: z' x: G                .active_low = 0,
0 v) _. x2 y7 l; `                .gpio = DA850_USER_LED1,
9 W4 Y+ \0 ^0 K& \/ V                .name = "user_led1",
. b; X7 u7 ~0 k                .default_trigger = "default-on",8 k, V' H- m  g. \; P9 {: ^6 i
        },
) L6 u& a, i; b/ A& Q* y  @        {" E6 U: X1 ]) {5 k
                .active_low = 0,- f' D* [  ^/ M2 {( R( [
                .gpio = DA850_USER_LED2,
8 v. _. b' \2 d                .name = "user_led2",
4 q0 S- {8 P) F: f; `1 z' x* z. N3 L                .default_trigger = "default-on",- l, G! S8 O/ l9 j4 j! N# Q2 k, F
        },
% O9 f+ T6 Y# N& q* F& C        {
( Y* c% M& G  K1 t; j! O/ q                .active_low = 0,
; w" G3 `8 X8 L' C# u  h. M                .gpio = DA850_USER_LED3,
; C+ v8 K5 u0 T. G5 b                .name = "user_led3",
2 T4 i4 C) R% Q6 C+ q& D                .default_trigger = "default-on",, X% h8 l4 l3 Y  {; {6 {' r% O2 Z
        },
, V7 `1 u1 V; M3 K4 {. U( r};
  C" N5 W8 Y7 B; b% z. v
) b% g, l: {4 `. Cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 @& x3 _; ~; U: f1 e) A
        .leds = da850_evm_tl_leds,$ K( ?8 ^2 C( y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 A, a3 E$ Q1 A# j};: l/ q% G+ M. o9 }+ \, @

$ r% d& t4 ^% {' G9 O% N# Wstatic void led_dev_release(struct device *dev)2 M. R% }  P& I" N
{
. V6 N1 u1 c$ n};
" e8 f' U' }3 J# R2 s0 O2 W2 N# H0 i1 Y" G) T( [& Z1 }. ~) o
static struct platform_device da850_evm_tl_leds_device = {
0 J1 k0 R% Y+ v7 S1 x' ]! ?9 Z9 q0 @        .name                = "leds-gpio",4 v- e- _0 L* r& q6 e- h
        .id                = 1,7 s5 U, d, a2 A! o  R/ S9 K
        .dev = {: [, g, J) n& F. l
                .platform_data = &da850_evm_tl_leds_pdata,* _5 f8 \1 ^1 w* P
                .release = led_dev_release,
- _" {; X! ~' z$ L: {/ Q        }
8 k3 p$ F# b: q4 D9 h& h};
1 L. r8 v/ I) p6 Z9 N
/ }% W8 G  [+ i0 O8 V8 L; k7 S$ {static int __init led_platform_init(void): n! o- A& y! Q
{
! w8 f. d, d7 E7 l# |& Q( o        int ret;
3 r7 c0 P9 p/ g5 K#if 0
; G3 g' q' C! Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; l* b. {# F; N0 d9 u1 V* e  Z5 ?        if (ret)8 y7 z3 L) p2 _4 k9 \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! M, p/ \6 v4 F6 B! c9 D# ]4 i+ `                                "%d\n", ret);
! ?! f* F- w: s; p8 u) f#endif
  D, b3 U6 K+ _. E0 G        ret = platform_device_register(&da850_evm_tl_leds_device);
+ y2 k0 v/ o' G+ @- M  b* ?        if (ret)
# Q- M4 T6 P* u0 \3 w% {+ R                pr_warning("Could not register som GPIO expander LEDS");
5 W0 H5 p! p7 v% a+ ?        else
  f. Y+ [- e& y. Q+ L) w3 P; x+ z                printk(KERN_INFO "LED register sucessful!\n");
/ w5 d+ B) y4 U) N. l  P0 ]+ P5 A. j2 X! \7 x4 o) j
        return ret;
$ |5 B3 P5 d% V( E; N2 A% l}
$ F/ l: z( r2 O0 Z, e% Q8 ^
' E) b. J& R2 X$ Zstatic void __exit led_platform_exit(void)5 K! }7 d3 c- y; F6 |
{
; ^$ u; B9 Q1 R8 j: Q        platform_device_unregister(&da850_evm_tl_leds_device);: y+ f! N) s3 U$ ]+ V1 X& t
9 y  B6 K5 N6 |% d( P
        printk(KERN_INFO "LED unregister!\n");( w; Y" {+ G) ^. v; S  ^* r
}
2 S1 a( [3 U, @% `/ @2 U  n) c5 V' y: ]$ V) e
module_init(led_platform_init);& o6 g3 X% Y# @- j7 [$ S' v% q
module_exit(led_platform_exit);
& t3 g( ]3 w& @0 K% h+ Z/ ]) W# }. R# d  y7 ?- e8 `( k4 f
MODULE_DESCRIPTION("Led platform driver");
* u. q3 c; `( M+ E# J% tMODULE_AUTHOR("Tronlong");
( W- L/ l9 V1 e4 b1 YMODULE_LICENSE("GPL");& M& v& Y/ r' c1 c1 u! ?
! |- A  Q" S+ F1 A/ m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-5-25 03:50 , Processed in 0.039125 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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