程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: w* F7 O: s' J# [- I#include <linux/init.h>4 @# B3 V% z7 g
#include <linux/module.h>
" }7 w* n5 h% x9 z& t" s#include <linux/kernel.h>/ s4 v1 R9 f! {- k# s
#include <linux/types.h>4 Q/ H( _5 t  U# h- d. B- n
#include <linux/gpio.h>9 ~$ K6 |9 }# X; ~
#include <linux/leds.h>
$ z' m/ S( w1 ?) y7 D2 W#include <linux/platform_device.h>
* p9 Y2 K3 |( B  u7 e% _; A* [2 g3 z- x6 t
#include <asm/mach-types.h>8 _# s8 C: ~0 y( S2 _' j% C
#include <asm/mach/arch.h>
3 c! v' L2 B, W& {" U1 ?$ u#include <mach/da8xx.h>
& Y& `3 c' L2 f: L1 L" ?#include <mach/mux.h>
8 Z% k$ U3 C8 v+ _1 u8 W. \2 a+ ^2 `9 m: k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 j; o& G4 F4 s" S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( F7 \; ]# `5 s6 s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* N! z  h. z" Z1 i- l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); ]1 i# z: `7 v* [: ^
' {! E9 d9 g6 h9 s
/* assign the tl som board LED-GPIOs*/
9 v# ~# o6 V! u! qstatic const short da850_evm_tl_user_led_pins[] = {
* A6 t0 z0 m& N5 K# ^, b+ L! h        /* These pins are definition at <mach/mux.h> file */
/ w/ l0 v! T6 t1 r1 N% P' ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 P; {1 Y5 \6 T( Q  j2 O" b& D        -1
5 i$ `5 `. a& j, d0 Y};6 Z8 o/ v) B+ ?

% R9 n$ ]0 \5 I& b+ Q. Rstatic struct gpio_led da850_evm_tl_leds[] = {
) f# x8 d3 Z. q* `5 v( H$ [+ h        {
! H( j+ J! e0 B, f+ ]4 J) G& m                .active_low = 0,
7 k& U( ]3 @$ X                .gpio = DA850_USER_LED0,5 {3 l+ ]/ x4 X3 G' f' {9 k
                .name = "user_led0",
8 K  N/ g4 @) \6 m5 N                .default_trigger = "default-on",
. W9 |9 J. j! P& @7 Q+ m6 C1 C        },5 g+ Z7 V7 z8 K" k* ~
        {
: x4 \+ i) F0 r& x3 M+ e8 v, [                .active_low = 0,+ E9 q0 J7 x3 f% J4 G
                .gpio = DA850_USER_LED1,2 b+ F: p! i: f. B
                .name = "user_led1",- ]5 s) }: `# I% b2 [0 O- V7 M# ~
                .default_trigger = "default-on",/ j# A/ m: D: X' L/ X$ w
        },
- G7 D8 X5 _/ w; \        {
: q/ L. x$ `1 e                .active_low = 0,
! T* O2 D/ Y* C/ s3 W4 y& w                .gpio = DA850_USER_LED2,5 M( N. Q! l! m% ]" s+ L7 W
                .name = "user_led2",, D( E% m! E% d+ {5 q
                .default_trigger = "default-on",2 o* e0 T; z0 ~! w# @
        },: O( @8 N: L4 {- _
        {; k6 M3 R; O( F1 q, t
                .active_low = 0,0 F- T, `8 i* [( i6 r
                .gpio = DA850_USER_LED3,  `0 M1 k) S1 [. w
                .name = "user_led3",% B" O$ b# V% }% ]" q
                .default_trigger = "default-on",6 n/ e1 m& X0 c% c+ K( Q! j
        },
8 Z: D# K7 X9 m2 X) {! i2 l) e) W};  A. M0 C0 g) i) o+ Z1 |6 u) c
; M/ b% M% u" v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& E  h1 a+ P) _1 N0 O/ }- K
        .leds = da850_evm_tl_leds,
2 k0 E! h( E  D* u0 }) l/ ~) c* E5 ~        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# J: D. H- E. M% }3 S};
# c) j9 M1 _$ X8 U5 X5 V6 a" i; y" C! C7 ~
static void led_dev_release(struct device *dev)8 Q. _3 g: |; W- }( r
{
0 G% h. S1 ]2 j0 V$ D) r& {};! F& W9 Q; U% w' Z

+ J9 m  y* h6 }# r, M) ?# [! Jstatic struct platform_device da850_evm_tl_leds_device = {1 R1 y8 V% |- _6 |, }8 T
        .name                = "leds-gpio",
9 O0 r9 h' r8 e9 S        .id                = 1,
5 i8 E7 h1 K8 t. v# I$ W! ?  p# P        .dev = {  Y" w+ _6 w2 \9 _$ @
                .platform_data = &da850_evm_tl_leds_pdata,
: R, W/ F9 h, X8 p' h  Q                .release = led_dev_release,
! |& D+ |' c* U: ]        }
$ G7 M0 G& e1 x};
5 C4 |( C9 O" U. i  e! ^- _3 T+ v4 m  M2 y. x
static int __init led_platform_init(void)
) b, q# k9 ?2 @7 P$ J0 i4 _{' f' [- @3 R/ Y! E; A1 B" `
        int ret;6 S. _% G  k8 a! {) N4 A
#if 0, l0 E2 \! \+ u" g$ U* }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! w) e- f/ h% e+ h' H
        if (ret)
$ `* s3 W$ W- O- b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 G6 ?/ N( i4 J                                "%d\n", ret);" F' h' g0 ?" i4 @% U( b
#endif
) \: s# C- K4 `2 g        ret = platform_device_register(&da850_evm_tl_leds_device);
; U8 I$ P9 r; m( {7 g  h        if (ret)
) c4 }6 D- @! M% N+ N- T                pr_warning("Could not register som GPIO expander LEDS");
/ S# `% y2 v  r8 u) A: n, X        else
0 L7 Q7 ~3 s& F) W* X                printk(KERN_INFO "LED register sucessful!\n");! f! U4 `% B6 O) p$ _; n
5 r( M& i& s& ~
        return ret;  k9 }1 Q0 e# i; n
}$ i5 v; M, Q5 ]# `2 M& Y
; ^/ b) `3 \% {" t/ x) `
static void __exit led_platform_exit(void)6 D6 ]9 Y6 N8 V* Z* g1 E  W: z
{
' u) `1 m" y4 A, l7 l        platform_device_unregister(&da850_evm_tl_leds_device);
6 @8 }8 R: J, J
; f0 X! k- j. k9 w" I1 C9 G        printk(KERN_INFO "LED unregister!\n");1 w. x0 S* C. |. P5 \3 S
}; k2 _; i8 j! f5 P9 G
" [% w% p8 y5 n
module_init(led_platform_init);6 n/ M; M' N1 k6 \: \3 R2 l
module_exit(led_platform_exit);
% W  u# O; K- a# e) j) v8 A; e* ]0 K' |: p: l' |1 n: c& D" ?+ c
MODULE_DESCRIPTION("Led platform driver");' a2 G& q5 D$ K+ y" O
MODULE_AUTHOR("Tronlong");6 L* |' h# T2 x8 R) z& ?
MODULE_LICENSE("GPL");
! p+ j; ^; Z; k: @, r, Y2 ~  `
" a. Q, V8 S7 F2 F! Z, q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-26 22:49 , Processed in 0.037322 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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