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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 d, R* `0 L7 k9 y3 U1 t#include <linux/init.h>. L, W% e7 V/ C1 l7 E' b" }
#include <linux/module.h>5 `. j$ J: w5 w9 I/ w3 [& W
#include <linux/kernel.h>
% d# M! v* Z3 }/ ~: ~* m5 |; m#include <linux/types.h>$ [! A# k" N! y6 r, X% O, i; U
#include <linux/gpio.h>3 Y" k9 A/ t9 k+ v
#include <linux/leds.h>
7 i/ F# i" \6 |# o; T. b6 O( l#include <linux/platform_device.h>1 D  K2 j( q9 ^3 k) y) u
3 c' N. F9 L' K3 F$ p
#include <asm/mach-types.h>
2 U5 h* _  j, G5 E6 ?6 ]#include <asm/mach/arch.h>0 f7 r) O7 B8 ^! b7 C3 @
#include <mach/da8xx.h>0 w& ~' J9 ]4 D% |1 S$ v
#include <mach/mux.h>
# l) F5 G0 Y: l7 I: g+ v( R5 D! ]) I1 D# q  X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 p2 n) Q1 k7 g& s
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ _; a5 V  {$ r0 M4 S4 S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% Q5 M" [6 ^; O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, _: ~' Y# z0 C( ~3 p3 g' W/ c9 o
/* assign the tl som board LED-GPIOs*/. G( e! x/ ~7 [2 B5 ]
static const short da850_evm_tl_user_led_pins[] = {
% V4 m# C( B9 [( p" h' }        /* These pins are definition at <mach/mux.h> file */3 [6 `3 j0 l0 x8 P7 C1 r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, _0 d9 j7 k! F" D  P; n/ h
        -1
0 x) {& U* ^* C/ d5 G9 q. \; p$ [};
, H& S0 Z% o/ L- X* [! `2 ~
) a5 t0 ^2 t; i$ x9 U1 \" Vstatic struct gpio_led da850_evm_tl_leds[] = {7 Q% x/ m) l+ V" Q+ ^
        {
0 G+ J3 Y$ m. c8 y                .active_low = 0,4 n; V# S  r3 p
                .gpio = DA850_USER_LED0,
; Z; _0 N/ u9 y7 \2 H                .name = "user_led0",9 ]9 [/ j. H6 o
                .default_trigger = "default-on",8 B# \' T9 e* o$ T+ o$ h& j6 N
        },
0 e- O$ o, N4 }! i* t/ R, Z% E        {5 S0 v# X' c2 @0 w8 ~3 p
                .active_low = 0,; w9 m/ j3 C# Y" \" o; [# L/ A
                .gpio = DA850_USER_LED1," d9 D' B. O" b; ~+ ~1 W
                .name = "user_led1",
1 _- b+ b. d) Z9 F/ a                .default_trigger = "default-on",, ~2 v6 m7 E+ D
        },
: I, _4 R  P/ R, _* C        {
3 {1 `0 f! J2 R% d& w% u  _                .active_low = 0,; M- u4 Z! K0 R  t9 n6 [
                .gpio = DA850_USER_LED2,
5 T9 }) E  n8 G' C                .name = "user_led2",2 T4 Q8 V  [' |( N9 S
                .default_trigger = "default-on",
% x; g" n4 I% ?) z/ N% F        },+ C& N* a9 I4 |/ v. A
        {
9 s6 r' r# ]1 M  R' D                .active_low = 0,3 g6 J* B' `6 n8 J$ \) X2 E) D
                .gpio = DA850_USER_LED3,! k  C3 v( ]/ b+ f+ [
                .name = "user_led3",3 H6 B# J% L8 `1 J
                .default_trigger = "default-on",
$ ?0 K! d2 |+ Y( b* \        },8 ?% B( ~* @/ B# k; o  H& B
};
- N" Z9 M" Y( ?( l8 y% Q6 H  Z6 q7 v3 |) i* {) i1 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 K' Y5 c) i- C% ^        .leds = da850_evm_tl_leds,
# ]7 n) k' N0 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 u  E; I2 D- x) N};
9 Y& ~& A7 X- j1 N1 Y: {0 o0 {
" ?8 e3 p9 v- Q% W; V( Bstatic void led_dev_release(struct device *dev)0 q4 ~/ s7 U' w* O! }+ ]
{
6 p9 X8 T3 W8 J};
! N. h  _( D, c- @5 V6 `2 @4 t
% j$ P. R, I5 k# l6 i/ xstatic struct platform_device da850_evm_tl_leds_device = {
0 R+ S) e% j& ^' w. N' y* _5 _        .name                = "leds-gpio",/ [7 Z5 W2 ]! s+ E# G& S) I
        .id                = 1,
, [* o' }- J& Z* g' Y% a) C& k        .dev = {" S- m: d/ f7 ^0 a& E: o9 E
                .platform_data = &da850_evm_tl_leds_pdata,+ ~$ o! o7 q$ ^7 i# _* ^/ T3 |- V! N
                .release = led_dev_release,
! u( V6 ~9 n7 X3 n4 U7 o! q& U        }
9 w9 q3 H' [  o};5 b: r( s9 M; b  U+ V

: a( t3 m' @% |! C6 [static int __init led_platform_init(void)
& [# q% ?$ \, Y. ~{4 y. Q8 J0 c1 E6 r# k0 s0 f
        int ret;
* x: G+ {" ?/ t. I8 }$ G#if 0$ F- a" \: h' \: S9 V7 B# W& r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 J) f2 E( R; t% k+ ]6 y        if (ret)+ L$ n0 z( @# z; V& o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" ?) ^5 M# F, ~                                "%d\n", ret);
% ]$ }2 x7 ^0 G! j% ^, f#endif6 ]; z) E* u% _
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 Y. ~  L1 P, S" c: |        if (ret)# Y. |8 u1 p: T6 J* T, U7 Z
                pr_warning("Could not register som GPIO expander LEDS");. v: s4 v( Q2 L6 s' {4 q
        else. l4 ]& @, ?( c0 R
                printk(KERN_INFO "LED register sucessful!\n");
: j; p: c8 U9 s$ S& U* y
! I& r3 y4 f  Q" L, e        return ret;
- Z) R$ p7 ?/ f# \( x9 e6 c/ V! s}0 `3 X' o* F/ X  _. b: v; \: _

$ C. I  C. D1 {. S2 i3 j# Ystatic void __exit led_platform_exit(void)
0 ]  W  ^4 e3 {# t6 A) c{
+ _! n% b: I9 o0 t, F/ S0 f' b        platform_device_unregister(&da850_evm_tl_leds_device);- K9 @( d5 V# J* U! B7 ^) y

; J% H$ P, }2 t        printk(KERN_INFO "LED unregister!\n");6 c' V' x& O# r
}
, r% I+ W. _$ I; ]$ Z. x2 ^7 g( B/ d% Z. s% l7 `
module_init(led_platform_init);  }) ?; B" c, P4 J
module_exit(led_platform_exit);
# G/ Y0 U8 g, O; r9 [# ]/ S
9 L9 X5 Q5 r- d0 sMODULE_DESCRIPTION("Led platform driver");0 P3 M/ y+ @9 D" Y9 X/ I
MODULE_AUTHOR("Tronlong");
4 c$ _, f, Q5 x5 B. K  C3 lMODULE_LICENSE("GPL");
* @$ D" J+ J* S3 r* b( j2 a0 W- O* f1 {  w% Y% n& u) T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 15:41 , Processed in 0.043012 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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