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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ h# P% I2 C/ ~9 ]" v4 q
#include <linux/init.h>4 B: I- V6 b& y1 j7 a
#include <linux/module.h>
  Z# `, W) I. K5 q. f1 X$ f. ]! ]2 q#include <linux/kernel.h>6 I) i/ p  I& M4 u$ j  U- j
#include <linux/types.h>+ H) I" h0 t! ~+ T
#include <linux/gpio.h>* E, }7 A0 }  n3 I; s
#include <linux/leds.h>5 Q" G6 S0 Y6 ?" F
#include <linux/platform_device.h>7 L- a. Y1 o1 e& i

. W* _& N. a. ]& C# N#include <asm/mach-types.h>
0 z2 J. G( a# M: x7 Y+ W+ m2 g0 Q#include <asm/mach/arch.h>  Y* }4 L: ]& U# m
#include <mach/da8xx.h>
, g4 c5 ]# e; X9 t1 B* Y% v1 W#include <mach/mux.h>
' K1 ?: b+ ?( T; H7 X+ n: w: @3 X8 O: t1 j% E: B4 o; R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 {$ U" I2 C' P. d4 {. v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 z7 k7 x1 r3 w' b  Q+ p& I8 Y- l#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 J; l$ H  u. b" W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* a% o2 |2 g5 N8 ?5 d+ k5 ~
# T6 c0 |- {. d+ E3 Y2 ^
/* assign the tl som board LED-GPIOs*/
0 ?% }7 K2 T. O! |% Kstatic const short da850_evm_tl_user_led_pins[] = {
/ w: s5 |4 ^/ \$ o8 |        /* These pins are definition at <mach/mux.h> file */6 N" p# M% |  S4 A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- O+ C9 U7 E% o* N        -1( t6 Q: O# f9 a! }+ H
};7 L  `4 S- C1 a  n

/ U- v3 f- `1 P/ T" D4 Gstatic struct gpio_led da850_evm_tl_leds[] = {
0 ~9 w2 \3 Y2 \$ C% C" s        {4 ~8 }' _6 e6 U7 r2 _
                .active_low = 0,
* c8 W" J4 }' _4 U: M5 D. g                .gpio = DA850_USER_LED0,& X9 i  f6 N8 P- [
                .name = "user_led0",7 E; ]# g2 G, A" s! \
                .default_trigger = "default-on",
  _2 b* g3 _- d        },
$ k  C6 w! o5 v4 N0 l1 m        {) H0 P  k9 w% I$ @
                .active_low = 0,
# F$ P: B! _# B; s$ Y& m                .gpio = DA850_USER_LED1,* m2 |0 M0 x# S4 r, T
                .name = "user_led1",
  F  ~9 x- \% L6 j1 x; c2 j8 \$ E                .default_trigger = "default-on",
  ^* j% X* `0 M* Z+ b        },
+ i+ o" ]+ y+ K7 |! o        {
' x; K3 h7 \) P+ f9 }% D                .active_low = 0,& @& s9 @  v" s% w6 A' H
                .gpio = DA850_USER_LED2,
3 K9 T2 l2 K; e* F, T; g                .name = "user_led2",
# n' {( m8 o* O3 U0 |9 x                .default_trigger = "default-on",# Q- H% D4 V( _6 q0 W# r
        },2 z) Q) }/ V8 g2 X( c+ w4 [) L, D- v
        {
7 W  g  ~6 [* ]" \7 ?' {                .active_low = 0,
4 J# o% |& A7 p5 |" W( P/ [                .gpio = DA850_USER_LED3,' B+ {) _8 f8 T. K  L' T9 l
                .name = "user_led3",
! F1 W$ d, T" Y                .default_trigger = "default-on",
# ]/ ~, A- q# V* ?: x# y; P        },
! J. K; W$ t! O* V) M1 a};
- L/ x2 L8 P" t5 r& x5 L+ N. I
' x! d  y7 e1 X# n1 m, Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. [) U" V$ ]9 Y3 g$ a5 K0 M        .leds = da850_evm_tl_leds,
  ~3 n0 W+ c5 N0 k& j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) X/ P! V/ o, K5 U) k};
* r0 H' y% B: O8 z
* G) p  e+ y& [, H9 zstatic void led_dev_release(struct device *dev)
$ C+ f' N" Y6 V! J0 G+ ~% M" x4 H8 x{! Q% D4 [/ {' ]$ `
};
7 V7 I# a' k7 p' V6 ^7 u8 Y1 C8 ?
9 |% @  C0 c8 M/ p( @) l6 M/ V* Qstatic struct platform_device da850_evm_tl_leds_device = {$ X, g8 [8 Z  t5 L
        .name                = "leds-gpio",0 G* f5 u0 o, f/ R  t2 G
        .id                = 1,
" h5 y1 U; Q/ O+ j: M4 P( f% S) \2 |        .dev = {
4 [/ c+ f" p4 S8 W, l0 k                .platform_data = &da850_evm_tl_leds_pdata,- i5 p6 W7 K; G
                .release = led_dev_release,
: e! B4 W7 `6 b& e- C) U        }
0 @  J9 e- g) _# w2 I; s};
* }6 F" K; H) q* v; H
# V) g3 h! L  Kstatic int __init led_platform_init(void)+ s6 }0 ^& I. i* G. k
{, ?7 ]& `5 r5 ^/ \$ s# C+ u9 e; X
        int ret;
7 g. a4 [7 Y$ y' H0 x2 S#if 06 l6 w$ x, E' h# Z% |! D" t" c* P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) c2 Y: i6 x7 U" G& v
        if (ret)
6 O/ d1 T. K& _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* V) u: g! n- G# h2 S
                                "%d\n", ret);) W# G% {# U1 P  Y
#endif0 |; T! f7 P+ M; B, z
        ret = platform_device_register(&da850_evm_tl_leds_device);! z/ D' Y) l2 @1 `, Q
        if (ret)
# A7 H- q9 [% l8 ~+ }3 }/ c% ~# h                pr_warning("Could not register som GPIO expander LEDS");! y; k; r9 J1 D6 C7 B0 ~5 R
        else8 |4 a5 \4 h8 n0 ]% C5 A2 E( n
                printk(KERN_INFO "LED register sucessful!\n");' Q, b  ?/ |! F% x' [" N+ j

1 R( E7 I+ {4 \: B% P! o        return ret;
2 B& q- c6 n( n9 ~9 T}
. A- x, R# u3 l: W0 {5 L1 d! j7 E4 L# [: q' ^. F
static void __exit led_platform_exit(void): Y4 ^/ e! ~7 H6 O* X  f# o
{% F0 Q) q# p* O' k+ P( X" n5 a
        platform_device_unregister(&da850_evm_tl_leds_device);+ H' o- O7 S+ Y, y2 ~: N

( t1 W: b; j! r; w' E* r1 D: y        printk(KERN_INFO "LED unregister!\n");
( T: s/ I0 `" _}1 \- d! {' b: a4 ^9 Z

) n- I. M3 _/ k( I& C, Nmodule_init(led_platform_init);$ V  d0 i& y. q3 v& \+ K5 K4 Z. m
module_exit(led_platform_exit);4 d: k1 e$ y+ \4 F( \
: V# k1 w% q( {8 K/ Z8 a
MODULE_DESCRIPTION("Led platform driver");
  M! K5 D7 |) }( jMODULE_AUTHOR("Tronlong");2 L: r- e! }4 u# J1 Y
MODULE_LICENSE("GPL");
7 O3 f% a* F4 m0 \( S# `2 U' e
& B3 C5 t  V7 J/ W; e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 22:09 , Processed in 0.040281 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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