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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 [: u! j+ p7 A2 y! |
#include <linux/init.h>
! N& |4 L6 w" E; O+ ~#include <linux/module.h>
8 Y2 w# C5 X2 H: j/ D+ P#include <linux/kernel.h>% r; p  E0 \$ C6 u
#include <linux/types.h>+ H' [8 c7 V( q& {- Q5 c
#include <linux/gpio.h>
8 g" O* ~" s& @( T#include <linux/leds.h>
6 C6 @! q4 w7 f8 ?: _7 t# w#include <linux/platform_device.h>: {4 j0 U$ T. B- f3 \& E

; f: {1 E  E. }6 S* _#include <asm/mach-types.h>
7 J/ P+ g7 g1 x- L#include <asm/mach/arch.h>
/ K0 P+ Q4 u# U% R  h0 M8 h+ F* m#include <mach/da8xx.h>
% W3 ]/ n; @+ ?0 h: U#include <mach/mux.h>7 q6 l0 X0 v; O3 ?# {3 Q) z
' E4 O0 V! R0 G6 X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 E$ ~3 D$ _6 }6 T* R/ _$ o2 x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' o. s6 {( K0 c' V* u3 Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. P  m9 G7 a% h, k5 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 a9 e% c; W5 x  |/ K4 Y
/ T6 q  L* u4 h8 C/* assign the tl som board LED-GPIOs*/
- \7 w' M1 J" L  W7 ?static const short da850_evm_tl_user_led_pins[] = {
. v! Q9 f8 L6 ^& ~/ v; w, u/ E        /* These pins are definition at <mach/mux.h> file */
* E5 }7 S* ^, Z9 `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# m4 A  g+ }! L# A* G8 Y/ m3 w0 ?        -1" [( P# {" v7 K0 E2 Q
};- H3 [% [5 q. l2 h2 ?6 |

7 i0 L  W4 l$ a6 s7 Tstatic struct gpio_led da850_evm_tl_leds[] = {5 [7 m% F% }0 z: {  r, X5 P! d
        {8 F( w& R/ c. n0 A& ]( d
                .active_low = 0,. X' v+ X7 a  l6 |/ P
                .gpio = DA850_USER_LED0,
/ O$ U4 L( k! E/ Q2 I# f  G; C                .name = "user_led0",- m( c2 g# v' j8 ?9 Z4 U8 h3 |' I
                .default_trigger = "default-on",
7 p+ @. X& q+ {$ u        },( m; C6 T6 \5 m, i2 {( M: L
        {
6 G+ I% N% j/ X. y3 H- u! D                .active_low = 0,
2 n  o6 v/ F) c( n& `/ X! t                .gpio = DA850_USER_LED1,
( s+ y: g% F# |8 v- k/ W                .name = "user_led1",
, e7 r6 ?: X6 O; @5 j7 y) j                .default_trigger = "default-on",
2 U1 H" d( \. R6 R5 C2 a        },
, S2 Z% A1 m8 }7 c9 B- M, {        {
1 V) t7 t" k0 @8 D  z                .active_low = 0,3 e' Y( Z8 S/ G4 i: w
                .gpio = DA850_USER_LED2,5 H+ i& a# t9 h
                .name = "user_led2",
" U+ t- O9 ?6 F" _# g                .default_trigger = "default-on",
9 O" t& {+ Z& r8 w% s: C5 \        },* r4 o8 }6 ]$ d
        {
0 X  e7 u) U+ _3 `3 m: x+ f                .active_low = 0,
! ^# S: R0 V# J  [% \; S                .gpio = DA850_USER_LED3,
3 ]" ?2 m( e5 ]7 h( f                .name = "user_led3",
/ C. R8 y; v: I# ~8 u: w2 _2 A                .default_trigger = "default-on",
; c9 S, L; @# [; r6 M        },
8 P4 @6 l4 W  M7 ~8 \# J* t};
) O  F. h+ r# j& T7 b
' ~- S' J2 Q9 Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 r+ l8 a: \% a, `& K        .leds = da850_evm_tl_leds,5 G4 M' \9 G9 z. e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% f$ d# K+ p# m4 H
};
) `3 @0 Q% |- o. V" N5 c  u. Q9 s- l! H% r) i
static void led_dev_release(struct device *dev)
/ }" a" l% C$ l- F{  C+ Z" G% r9 @* y( A6 X$ F: N: _
};
; D9 J' p7 ~/ f  T
, e& Y$ m/ j& a8 k9 s: p& B/ x1 t9 dstatic struct platform_device da850_evm_tl_leds_device = {
- {; N+ N% `4 B        .name                = "leds-gpio",( U. ]6 F7 Q# J5 V. [
        .id                = 1,
" x) V# ^5 @, I6 J! [- T2 S3 L1 Z        .dev = {
/ _5 V+ W/ h+ Z9 F. q6 m4 t                .platform_data = &da850_evm_tl_leds_pdata,
+ K0 f. L( R: o7 h; f$ v                .release = led_dev_release,
& K4 E& |# C8 Z7 ^, V1 a        }, Q: A  \( o8 ^1 C" W
};& D$ W7 g' d  v0 `' r8 Q

: v3 G1 W) Q1 Q' t- lstatic int __init led_platform_init(void)! a0 }( y1 ^. i1 C4 f% S
{
! T7 X- ], [. N" u        int ret;) f# [# B4 n. `
#if 08 O5 O. E/ Q7 r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' a/ c- p1 B& B1 e: K+ l        if (ret)
+ r3 T3 r' m5 ]& z0 Y' \, V# f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 [  `$ A4 r) }7 g( A                                "%d\n", ret);
9 _/ i1 F& ^- E# l4 P% O#endif
2 b/ z0 g+ [( B  z, g4 d        ret = platform_device_register(&da850_evm_tl_leds_device);9 s. s5 E- M. g
        if (ret)% B% l# f! K+ I0 \4 I& R- q
                pr_warning("Could not register som GPIO expander LEDS");
9 ~' I  c5 ~) ~        else! F) t$ `9 Q" a* |
                printk(KERN_INFO "LED register sucessful!\n");8 |2 l& k( G, ?+ U) B
# p+ s  c; V! T6 d2 N7 D. q5 R
        return ret;
+ J6 p/ T" k* O+ f}
) E, ]8 m4 w& p: k
' [8 u. E7 b( z: c) B0 J$ V' hstatic void __exit led_platform_exit(void). U% t( A1 P; W% v/ c
{/ S2 d4 J. J/ ]$ b7 s
        platform_device_unregister(&da850_evm_tl_leds_device);; q# T8 {$ }0 m! a3 A
2 X6 Q+ M* l1 k( O) N. v
        printk(KERN_INFO "LED unregister!\n");
2 Q6 q% \; B4 |1 u' ~& T. {4 ~}5 r$ t+ ?5 Q+ v6 a: i9 Z

/ B. r- @3 I9 v% N% }+ Xmodule_init(led_platform_init);; Q3 G" P0 L+ \
module_exit(led_platform_exit);
, T* D5 l& A9 x5 C% F, T& R6 K( X+ K% P" |' o. V" n2 l
MODULE_DESCRIPTION("Led platform driver");5 {: A/ T% T3 j$ c: s: l
MODULE_AUTHOR("Tronlong");
' ~) S! H3 d5 Q5 Z! B5 H2 bMODULE_LICENSE("GPL");9 ]) V: g3 V; b, H

8 T; w7 ~/ p) ^) Z& L% q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 12:18 , Processed in 0.040801 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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