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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ V% p$ D" _& l0 o( N8 f+ z" ?; K#include <linux/init.h>
4 y- G$ u6 w9 F) o; r#include <linux/module.h>3 Q: h2 k* T; g% y& h/ S2 _
#include <linux/kernel.h>
1 `; }9 Q8 C- z" e7 r6 L+ @- X#include <linux/types.h>
5 e0 n/ S2 G; {: U3 F#include <linux/gpio.h>
! E  u5 [7 h5 r; K#include <linux/leds.h>
8 `4 b2 u% K$ {. B6 R. E, s#include <linux/platform_device.h>
5 h5 h, i/ L$ T$ g# [; q# i- N+ }! |# J6 C  {, Y4 ^$ b$ s
#include <asm/mach-types.h>0 V9 }7 [+ u4 y
#include <asm/mach/arch.h>2 \& D7 a6 e8 ]8 h% T
#include <mach/da8xx.h>
' X- C. ~! O, l" g) S#include <mach/mux.h>
; Q; K& v( d' t/ A  C; ?  R$ t. s- ^1 [0 ^# q. _5 a0 t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): D: f3 S6 B' i$ c6 D  `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* Q9 S$ _8 M  T2 c- ~4 a% G5 G9 k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! q$ U. H, i6 [) s6 r7 c% T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* W, z4 I* u% ~8 C+ `( |( R- x: s) W7 a- i  a6 _6 ?  M
/* assign the tl som board LED-GPIOs*/
$ Y6 T5 b  `- q6 E3 W1 D# Sstatic const short da850_evm_tl_user_led_pins[] = {
. V4 x: S  f# \        /* These pins are definition at <mach/mux.h> file */
. I7 n/ z' L: b8 J4 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: h) q( G& E  \; P) |* J2 V& c
        -1) y: b) z" M3 b
};. o7 v3 p+ b* H- d
4 i) t# D1 M! C* n
static struct gpio_led da850_evm_tl_leds[] = {# J' p0 u6 ?  j7 K
        {
. [( d6 O  q6 F( y/ o2 y                .active_low = 0,- A9 M, Z, C. r" Q  n! e2 E
                .gpio = DA850_USER_LED0," E/ Y; ^! z1 J) W
                .name = "user_led0",
4 D, ~) ]# X# ^, S7 }0 g                .default_trigger = "default-on",/ K5 A% s8 Y* J' ]; `* ]
        },6 E# w  F4 Q9 c# f7 y- K0 l4 C. U, R
        {
) |$ W  E, j) K6 j' G5 C. W                .active_low = 0,
8 z! x' K( S; {3 S+ ?                .gpio = DA850_USER_LED1,
8 G! d# i* Z% a6 v                .name = "user_led1",
! H2 ]  C% x1 Y; j                .default_trigger = "default-on",5 L8 _; h9 F- W0 x4 ^
        },
$ j2 A' I( M* N        {* s, G) e; H- W4 n, V
                .active_low = 0,7 A: o/ W; x) _
                .gpio = DA850_USER_LED2,. ~# p5 ]# I6 J7 U. B7 @4 x' u
                .name = "user_led2",
7 W7 Y  ?6 p' ?% i" v. F                .default_trigger = "default-on",
+ w. c- j4 u# S1 `' g7 Y8 v        }," i, j3 m1 [  m# l% H
        {
/ M1 f) i2 o/ C: Z                .active_low = 0,
4 s( t' ]& U/ p, \# ]                .gpio = DA850_USER_LED3,
- H$ D3 @# i8 b1 o) K- A                .name = "user_led3",
4 s6 h8 [% Z' ^- L) P. g                .default_trigger = "default-on",0 E( m8 X, e$ [7 Q+ \7 g& u6 R
        },) C& d  y, z/ h+ R. h. u+ Q
};- _2 B$ w9 Y& v) z# x

9 C. E& G6 M/ A. Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 B2 ^1 r7 N( \$ e' f: j" |) z$ T6 j        .leds = da850_evm_tl_leds,8 y' \1 o0 F+ i* r. h" x, ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" N5 u+ t- o" o4 O};
9 p% ]2 O: A+ f# w/ p/ U4 `. j4 G% o" v! i! U" C% v* D5 l
static void led_dev_release(struct device *dev)
: l1 e& u, \8 S{/ [9 u9 w) p9 D5 Q) v
};
0 k: @) w9 z& g3 C6 o  N8 y- @/ j9 [6 y" H
static struct platform_device da850_evm_tl_leds_device = {
( e% A' j- S6 H7 A. [* A9 x- R        .name                = "leds-gpio",
' T1 }8 U% o4 G% O* w0 M  T1 O3 ]: P        .id                = 1,
$ ]3 k9 I0 r0 z" c( j: V: }3 g1 M        .dev = {- Q; p8 i8 u* v+ ?* i+ Y/ }
                .platform_data = &da850_evm_tl_leds_pdata,
! Y2 U% ?  v& T2 W8 o& R  W  R                .release = led_dev_release,
" H# c- a( N  p        }% X4 Z2 a- a' Q7 X5 M' y0 S
};* h4 S+ X: F" w( f5 h4 b

  M! K% a% m* \1 a5 }7 Pstatic int __init led_platform_init(void): g2 P" D! R  n) ]6 U# b6 d3 \6 @
{
9 V& X0 s; K; u1 ~# O- N7 x        int ret;
) X) d1 r4 y! k7 t6 N2 d#if 08 P5 D# H7 _' s! p! E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  ~; D& t9 F/ a/ l
        if (ret)' k- M  Z$ G# Q  @: P1 z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( y# x2 s. w, b8 n' |' d5 w9 Q                                "%d\n", ret);
! U% ]# @9 r+ Y! P4 ~5 j7 S#endif
# r: O7 o+ h6 X9 v& l# @        ret = platform_device_register(&da850_evm_tl_leds_device);# W  _# J. t- Q; y2 t/ t  ?
        if (ret)
4 C* l+ V) r/ ~8 q9 d                pr_warning("Could not register som GPIO expander LEDS");2 j0 H2 M: X, C4 N1 y1 z- W6 c
        else
- w' l) m1 h2 X  O" c+ A4 y                printk(KERN_INFO "LED register sucessful!\n");* k: O8 E: c5 e. `7 h9 e: a3 W* j
, T8 d* t! m. P
        return ret;; b8 n" j7 V1 T) \  ^  c2 |
}
9 V" D% u- j6 i. Q2 b# E3 O9 R, j0 ^2 Y
static void __exit led_platform_exit(void)
) H$ W& b' p6 ]/ T. U8 ?3 l! l8 m{: K  \$ @( t- z& ~
        platform_device_unregister(&da850_evm_tl_leds_device);
- q0 u& p: k# ?+ R" G+ L1 T1 o; g  l- ]! a1 Q2 k% n7 N& M
        printk(KERN_INFO "LED unregister!\n");8 e8 e& t+ r) Y6 P
}) e  H4 R7 @5 a, O* y
0 |! P4 A) P6 o" \6 ~. b2 h9 j: ?  X
module_init(led_platform_init);% W6 Z7 q1 ?) i5 @3 o+ y
module_exit(led_platform_exit);
- W5 ?% A5 P, I# J* B2 [1 `. A9 U3 k- O+ k/ I1 G
MODULE_DESCRIPTION("Led platform driver");
6 u$ x7 L# x9 uMODULE_AUTHOR("Tronlong");7 i+ H, G8 ~/ ~" P+ R! M
MODULE_LICENSE("GPL");
  \' O( e/ ~5 S: Q, s- m: Q) O( t8 w2 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 18:50 , Processed in 0.033865 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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