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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% r* F0 c& D0 j; G) o6 Y#include <linux/init.h>6 y; N* v* m& |
#include <linux/module.h>
" F- E* M8 J& @$ J2 z8 q# p4 L' p#include <linux/kernel.h>5 s" S2 d: |. x$ U3 `% `/ d4 Q  ]
#include <linux/types.h>5 o8 j$ v& b) ]7 W: @
#include <linux/gpio.h>
0 _1 H$ ]/ R# x+ ~6 n! F#include <linux/leds.h>3 c" d1 ], @( I, k* ~5 _* U
#include <linux/platform_device.h>
- z: `* F( S# v" A: ^/ E9 S$ [
9 e1 {5 x7 a8 f% J6 y0 f#include <asm/mach-types.h>% _- G$ u; E0 ]# N7 R/ X, \
#include <asm/mach/arch.h>. t. D! V) V# A& y! R
#include <mach/da8xx.h># H" W4 f. W5 m7 `- S+ {1 E
#include <mach/mux.h>5 B5 b; B; B$ ?) F1 ]$ q
0 u/ B- m0 y# C6 h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) {5 f: A+ d, i4 S# A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 r3 v* J4 A5 h( b$ g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): C' y) j" G6 i" I) G! M4 w# X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 \) v: O) Z4 Q. T: M  a
% k& K7 ~6 L5 T0 Z+ V/* assign the tl som board LED-GPIOs*/! ~+ O( E7 h8 L; K
static const short da850_evm_tl_user_led_pins[] = {5 j2 ~, h! i! D- _4 O% r% ]3 h
        /* These pins are definition at <mach/mux.h> file */
/ c0 K3 z: a) O) p9 V# e  w# B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ w: o7 \8 }, l        -1
- E/ y% T- R) A5 V! Y' h4 _};
$ v5 ?3 d! N9 }! n# |
: s" v6 \+ J9 B( u/ }% hstatic struct gpio_led da850_evm_tl_leds[] = {/ b7 J( _/ P$ j6 g; P3 z8 ]
        {! s! p& v1 h4 g# {6 T0 a
                .active_low = 0,2 Z" C" k; r+ _; D, m+ D( G2 g/ M
                .gpio = DA850_USER_LED0,
/ L6 v0 n/ a5 O                .name = "user_led0",5 l/ N5 {; j2 F
                .default_trigger = "default-on",
# X! {  n+ C( ?- D, a        },+ T# C% p) l) I! r) L8 T
        {; |  K( u( i) S2 J
                .active_low = 0,$ E' r& \  t. g% E9 L
                .gpio = DA850_USER_LED1,
4 V2 A4 r5 Q  L. `                .name = "user_led1",! w# g" b. o& S& c. n# B$ v
                .default_trigger = "default-on",
9 x. K4 [( T: N* ?% N        },' L( {* _- \5 z7 w/ n8 i  H
        {
# @/ R) F. I0 W/ Q7 y& h7 U* r                .active_low = 0,
' D. N3 @$ V# W0 I5 k. I                .gpio = DA850_USER_LED2,0 O1 k: B2 K3 [+ Q8 d$ {' [( t
                .name = "user_led2",
! v6 u* C& l& J- H; w0 M8 a2 M$ B                .default_trigger = "default-on",
2 f/ z+ R) s9 c        },9 Z4 _1 c; C. k
        {
7 {/ l2 i# ^& F( Q- E: @% C& T                .active_low = 0,
1 F4 k; W5 |0 J  B6 i/ W                .gpio = DA850_USER_LED3,4 ^7 F8 U5 O, q6 [, l0 i1 {
                .name = "user_led3",# `! P$ i! w+ m. k- q$ U5 y
                .default_trigger = "default-on",
. H  x: I$ {! Z4 G        },0 I/ n: s: {8 B" Q" O) h
};
$ z2 s* X* Y, T3 R
; Z# y! d7 m+ q' v# L9 z# f' _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 r4 ~/ {3 Q, W$ b( O
        .leds = da850_evm_tl_leds,
2 s# C0 J% g) c. E7 i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( t/ k2 Z9 l, c" N9 s0 L3 m5 Z6 N& V
};, h) |6 K# l  g' S
9 D/ k2 K7 F7 R: p
static void led_dev_release(struct device *dev), C$ ~* W- k% Z
{
3 c' ~! O2 k; k& k7 z. A};
' f# u2 z0 v' E3 {6 v
; N( r- O) k0 C/ i3 ^  C9 Q6 ystatic struct platform_device da850_evm_tl_leds_device = {
+ x6 j+ S, O+ A* ~        .name                = "leds-gpio",) n5 f% L+ O1 f9 X# c! }
        .id                = 1,3 w3 y6 V+ E3 s$ k* H
        .dev = {+ d+ t+ i9 V: l
                .platform_data = &da850_evm_tl_leds_pdata,  V9 d4 }; S* a4 X' N
                .release = led_dev_release,4 y1 c0 b" i! J/ ]/ h/ \& @3 M
        }
9 c& f& r( g% }3 q& k3 E};. ^; L$ b: Z% g  \. P
% v% l" c% S4 \! }5 b7 {$ o
static int __init led_platform_init(void)
  I2 p, Q# X5 w. N) A; K0 `{* C5 U% i" [* c- e
        int ret;+ c2 O' E$ H1 d. d' l+ o
#if 0
7 Y* t" S/ }3 x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 U6 M% d+ a5 q. H' V& q- X7 k        if (ret)" w8 |/ i. H  q1 m# p9 d9 `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 y; h5 ^0 F' U! f2 V8 e
                                "%d\n", ret);
0 [9 B; l! Y! j& P2 F7 D#endif
8 @% `/ w9 u+ L$ Q! P/ @* H+ ?        ret = platform_device_register(&da850_evm_tl_leds_device);  V1 m( s& d4 C# e2 E/ k8 b$ O
        if (ret)
+ W5 K* }2 a  O/ h                pr_warning("Could not register som GPIO expander LEDS");: e5 X8 P  l0 u' N7 v4 n7 C
        else( x9 ~% d' }) c' a
                printk(KERN_INFO "LED register sucessful!\n");2 m# \% A$ _6 [) G  {+ Q* o) h
; s, p' q  A, {1 w/ U' ]
        return ret;. Y1 s) S" u( [: t
}
( y( G$ _  ^+ U% H! A) P% W6 \5 L0 o; C4 `
static void __exit led_platform_exit(void)
) K. j  D! X/ X& @. e( p3 d0 k{
2 F! I/ s! I  G0 W7 q* L2 i        platform_device_unregister(&da850_evm_tl_leds_device);% R4 v! \4 N. P8 w/ a

/ C; W* c2 k' k3 s8 o( W3 j        printk(KERN_INFO "LED unregister!\n");& X' f, I  C9 u9 z5 P
}
" Y: y. ~  ]* a, U+ L
  `2 E1 t9 m5 Smodule_init(led_platform_init);
& y7 X) r. }" j. D5 X& ?module_exit(led_platform_exit);, u% l2 k' I7 c+ y4 z* {: I

& `8 c) j0 u$ ~! d/ T9 i5 S  F7 }" mMODULE_DESCRIPTION("Led platform driver");
7 o6 m5 r, k( D3 f9 `3 m$ S' FMODULE_AUTHOR("Tronlong");
' c5 |, Q1 p+ \( J( R1 g- }MODULE_LICENSE("GPL");
' [! X( P- k; G) x6 c( e( S5 E1 L6 k3 `( R) l2 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-9 13:40 , Processed in 0.040531 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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