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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 p" j0 V* Y2 v4 H
#include <linux/init.h>; p) d7 ~' u! a3 x0 g8 b, h; s# H& A6 L
#include <linux/module.h>
3 q6 W+ }2 D9 S  R4 F3 B#include <linux/kernel.h>% ^! a- g" D0 U3 {" e. Y, w% {/ M* @1 s# `
#include <linux/types.h>
  v0 Y+ K6 \' u; v#include <linux/gpio.h>
) M3 x& n; D5 ^4 O7 ?  r9 H% A#include <linux/leds.h>
, w' I; ?8 U% l8 o#include <linux/platform_device.h>! P/ ?8 d- C) Z) R% x
6 {6 C. r1 @( |8 g
#include <asm/mach-types.h>
: [2 V7 @' C6 j, d2 k#include <asm/mach/arch.h>
5 g8 I' T. ^' u" w5 ?( U5 S2 H#include <mach/da8xx.h>2 ]9 z: N5 k6 ~! P3 K* y9 ^
#include <mach/mux.h>
, b4 o' ~& v+ j: A% Y8 D0 z
' e3 Z6 C  s4 W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! Z( A" V. p/ O% H. ?1 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); o" ?7 u, p& q0 K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# P, a: Q3 j: `6 n/ O$ c1 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 G3 G3 a7 s/ W& }. s- `6 [" H6 A) K7 `2 r
/* assign the tl som board LED-GPIOs*/
4 a3 M$ c- H, w5 H8 g% H/ mstatic const short da850_evm_tl_user_led_pins[] = {& \) v4 B8 e4 J  C
        /* These pins are definition at <mach/mux.h> file */
) M: s, b9 h& x        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  a" a! C3 G6 m4 N        -1: ~4 J9 U. j$ N) A0 e1 \; `
};
: q3 B) x' T5 w% M7 j  x; Z1 i. T! Z" U) V1 M8 O$ `9 X% {+ q
static struct gpio_led da850_evm_tl_leds[] = {/ l0 @2 \+ V. T4 K* N$ I+ Z
        {
+ t) N2 A1 }  Y4 N2 \                .active_low = 0,, ^! f5 \0 P$ N
                .gpio = DA850_USER_LED0,
1 G8 u/ I9 s2 a: |5 m                .name = "user_led0",+ k% M8 ]$ H) d1 ]8 p7 G- m% N
                .default_trigger = "default-on",
% p. P; @# |# Y: H: k% [        },
6 a' y, a  @0 i' A* C3 Y$ `        {
+ \7 Y4 _+ u  Q/ a. {                .active_low = 0,
+ u5 ]! A+ }% t9 }                .gpio = DA850_USER_LED1,
' v- }3 o# V/ e5 i2 {                .name = "user_led1",
- c/ k: O# g6 A                .default_trigger = "default-on",/ G6 _! v' x9 \
        },
7 }5 p) d3 v' n        {, k' ~5 p* u0 \5 k! o- H
                .active_low = 0,
% t- t! U4 k0 r) Z3 Z! ^, O' b( i                .gpio = DA850_USER_LED2,
! Z# [- N" i5 |# b; G! R/ }                .name = "user_led2",7 l  z+ c+ x# d" |3 i8 u. c, Y
                .default_trigger = "default-on",
; U4 E* v7 o/ L0 B" K) [& n1 |        },
$ c# J" V( L7 J        {
! r; p, k; u3 v2 E  L8 g                .active_low = 0,( _7 z5 m9 n' i$ E2 Q- d
                .gpio = DA850_USER_LED3,9 U/ U' @4 ?6 F1 M$ ^
                .name = "user_led3",2 n; l0 V& h! |
                .default_trigger = "default-on",& o. k& {" a8 V+ S8 _
        },/ g/ z9 b2 `7 {& Y' X1 H
};" U% f* Q( Z2 y+ Z# u2 v$ |/ e
+ J  H- t* ^$ O4 C& m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 k* U( y% Y2 h/ b
        .leds = da850_evm_tl_leds,
! ~  ]" M4 t+ ?+ r: B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: |: H+ R, t$ c* h7 c5 d};1 j' G3 U2 s! H

& w0 m, s! l  |4 i6 j* K' a- Fstatic void led_dev_release(struct device *dev)% N+ J& j0 i  e6 c1 C" p! R
{: O% `, m! Y) a& {) l
};
; l4 `. f5 L7 x
9 b# Q" D/ B# O- B; zstatic struct platform_device da850_evm_tl_leds_device = {
0 x4 ~6 {& {) P0 f        .name                = "leds-gpio",
. \, J" M. H6 U8 v+ u        .id                = 1,
* M, y& W% s" _        .dev = {& v; _; O# T" E" a: g
                .platform_data = &da850_evm_tl_leds_pdata,
# F; I2 l, `7 ^$ N: M1 ]                .release = led_dev_release,% w  m( I' I& \2 i4 B. y
        }2 f# S4 I3 Y# _, K6 [  O# \! V  h
};
3 Y8 l" u! }9 p$ C# M1 b% z
5 ^: a) X5 }4 N. T* J' tstatic int __init led_platform_init(void)
- J) z* {4 f+ c& B, N" f$ U8 E{8 V' h% r+ b' m  K7 U
        int ret;! B$ x& ^' a  e9 B7 q( {
#if 0
, A+ w  A8 M6 {; j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ @8 |. C/ l; ?        if (ret)
  H4 g3 r; ^1 ?# B- h* F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# a  O- v# R* u                                "%d\n", ret);  z( w# k& q/ `/ H2 Q6 ~
#endif
& x( e3 c. H' i# H# `% e- m0 C        ret = platform_device_register(&da850_evm_tl_leds_device);
+ o9 a6 c7 p) V& j        if (ret)
3 f2 f. b* i! }& c( c/ d                pr_warning("Could not register som GPIO expander LEDS");
& n8 K0 R# d& ]+ y: m( j/ |        else0 S: X' I  X# K8 q
                printk(KERN_INFO "LED register sucessful!\n");  w- `5 T" F/ S- b5 c

  A9 G+ H, ^% ~# {, S        return ret;! m; |1 j3 p$ v
}7 Z+ G/ b2 K& Z- P' B+ w
4 }: K- k7 w6 z
static void __exit led_platform_exit(void)2 E. s+ D/ B& m* k
{
7 Z, P$ P6 d( o        platform_device_unregister(&da850_evm_tl_leds_device);1 x9 C% M6 w( l0 V7 |8 T
) g7 f! O  W4 s) I$ Y8 u
        printk(KERN_INFO "LED unregister!\n");
3 H7 V$ {. I) E" A/ Q5 `$ E3 F9 Z% z}, u4 w- H9 b, a, s& X
1 v& X7 V8 X7 E" u2 g- z
module_init(led_platform_init);) Q( {6 _* ]' D$ p. R9 H" Z- `
module_exit(led_platform_exit);. D4 ^% e4 ^* x! J) W# g

. Y$ g& P0 Z: Q  ~7 {! TMODULE_DESCRIPTION("Led platform driver");4 N! i& D" ?/ a% ?7 [9 V: y
MODULE_AUTHOR("Tronlong");
5 p/ a* C7 h( L3 p! k) B5 f: MMODULE_LICENSE("GPL");' d* d! p7 q$ j7 w) x  Y: g9 [
* V5 q1 `% E* V+ ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-15 10:30 , Processed in 0.045966 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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