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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" f3 N( K3 {. \& E6 L! r( n4 _
#include <linux/init.h>
  F" m4 L# N" d4 Q7 E- `: E#include <linux/module.h>
- x/ }0 d; z- o4 K8 @% w7 X#include <linux/kernel.h>
; O" X" }* m. t7 p2 C, y7 s. q! _#include <linux/types.h>
! u% H$ `# J9 M& B9 }#include <linux/gpio.h>* k' h# o& d) J, Z1 J
#include <linux/leds.h>3 C0 s: y4 ~: G) m# i
#include <linux/platform_device.h>
  ~, O. @" c+ r* [/ O7 O; K6 r0 e! R
" D/ q  m4 i8 i7 p+ D- m+ [#include <asm/mach-types.h>
5 k: o& v2 k. G+ }( e& U#include <asm/mach/arch.h>5 m$ a/ F* v8 p1 x- ?' U
#include <mach/da8xx.h>
6 k/ h3 ?) s- M7 M! H#include <mach/mux.h>
9 y3 A) U3 G5 E  L/ J) u  [3 U; ]1 @: {. }+ z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, A% r% k% C1 M$ N% E7 i- O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 l! H  F+ c. x: h. O- ]/ M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). G) a/ H" J  s* Q- [0 x" B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ~" ~4 n! _9 Y) L/ M- `

# p" c, _( N4 w9 f. M/* assign the tl som board LED-GPIOs*/
  \1 o- y5 m' N# `% jstatic const short da850_evm_tl_user_led_pins[] = {6 d+ b' v7 ?6 H& p5 K
        /* These pins are definition at <mach/mux.h> file */
& Y9 f5 @9 O: N2 _9 i& C. m/ X  u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 j1 R5 R' z2 \        -1
3 Q  R" a& J- p; |) B  ~2 g};
0 q7 d) B1 h* O
2 F4 t+ C# @7 Gstatic struct gpio_led da850_evm_tl_leds[] = {
) Y  a+ {0 _7 V6 o% q& [        {8 j6 e; W, \5 A! q# u& A, z
                .active_low = 0,6 h6 A" O# p/ `2 ~; S' p% O5 I
                .gpio = DA850_USER_LED0,  d" h: `$ i& e; S' a
                .name = "user_led0",' v4 C6 i$ M5 e" u, A5 S3 Q% H
                .default_trigger = "default-on",
# M3 D0 [  z$ O# y3 O2 ]. d        },7 {! @) D% [, V" g/ `3 X" G$ k
        {3 x0 R7 Y$ Y- _1 l- }+ V" J
                .active_low = 0,
4 W: X+ q- O! R  M5 C4 W" V) `                .gpio = DA850_USER_LED1,
4 ?3 Y, ?* E" j- E                .name = "user_led1",, e, @8 J% j/ _% b& O( C( ~
                .default_trigger = "default-on",
4 u1 n5 O. o7 U- h        },
1 c$ K2 C7 ]% c2 p" g* ~# g& _        {
+ M) B' Q% X) y$ b                .active_low = 0,9 X* j, l- [) b- V
                .gpio = DA850_USER_LED2,' p' G3 L; Q! D; g& h$ _: r
                .name = "user_led2",- p7 L; y- H9 P
                .default_trigger = "default-on",
& Y+ X" z3 R5 t% j' S7 O2 d3 Y        },
1 E9 l3 }/ J. _6 M        {9 d& Z9 P7 P9 G/ U$ [. q' m6 o  \
                .active_low = 0,
  L. O" ^3 R' w* b                .gpio = DA850_USER_LED3,
8 e3 n! Z3 o0 R  f* p$ g                .name = "user_led3",
+ f; P: ?- l! C$ `1 u4 f2 s                .default_trigger = "default-on",1 z8 e; u  z0 ^" H
        },% |. W. h2 _. v' O! |# ^
};4 r2 M& f; m" e' S  J  M% W

- {, c8 ^  C4 B  C7 L4 J2 Z' e% Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! q) r, Z1 ]. x* h' _6 O% r' S
        .leds = da850_evm_tl_leds,$ b$ j. f8 z3 F$ B) D3 B7 I- h6 N& I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 n7 B' \# t; t' Y
};
$ S2 T4 \4 u  ], B+ z' U0 Q8 Z3 C2 e% W1 j2 a4 }6 Q
static void led_dev_release(struct device *dev)8 `9 M: f. T. j5 d& F5 T0 s% D
{
) C/ _. n3 ~3 M2 h7 ^4 F3 P};' X3 J0 o& E. V
1 Z' }8 Z) T5 V7 s% ?
static struct platform_device da850_evm_tl_leds_device = {
; H% [" a* c' E) F% T3 H# N  r        .name                = "leds-gpio",+ ]# i1 R3 n1 [$ k- K) W1 F" Z7 R  `
        .id                = 1,& ^4 ?! n4 b; g% n
        .dev = {2 E9 M4 L3 u, Y# D" I
                .platform_data = &da850_evm_tl_leds_pdata,9 N8 e6 ~% ?0 b; v7 @
                .release = led_dev_release,
5 r6 w, j% m) R# @8 }, g  `, L        }  |4 T, b8 N1 \$ k" c* c
};
8 X, i6 a: L% K% `  n. ]% L  ^% }* F1 ?
static int __init led_platform_init(void), |  I$ S  C- ~5 m
{& {9 w: ], Q! y0 q+ R
        int ret;
: A4 L/ X2 i$ W9 N#if 0
- [6 u) b& Y( E( Q( P6 R1 y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( F/ V9 z$ `' {" C; R0 D* L9 G* I) m  D        if (ret)
/ j$ i  y; M% O8 Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# J$ l: v- m$ k. r5 k# n
                                "%d\n", ret);" X% C+ c2 N! _  {* I; D9 l: v3 Q% K
#endif
5 K  p3 @6 f4 O0 E' D1 I* ?: m7 `6 a        ret = platform_device_register(&da850_evm_tl_leds_device);
" p- ^! f( d& U        if (ret): U) U4 |/ [: z2 n& G& C6 v( d4 n
                pr_warning("Could not register som GPIO expander LEDS");
" W; G) ?& W: }7 ]# ^        else0 P/ q: \! a* C  B$ T3 i' u" [1 J
                printk(KERN_INFO "LED register sucessful!\n");6 l5 l' }$ m0 j4 X& a: T- g5 K* F

: N& w. Z+ q' O8 H        return ret;# X8 i1 t4 o( V
}/ P1 ~9 P7 x( b& P2 u( t' E
3 t( _; t, ]& m) N7 j
static void __exit led_platform_exit(void)
7 n, A# ~/ c- x- g{
; [5 A1 Y5 P2 t9 b8 e; Z: r' U, f7 G        platform_device_unregister(&da850_evm_tl_leds_device);& n2 P- o9 o$ v( D" a3 f8 A5 ^

$ l# G) H" [: x* A2 u8 ]0 ]* M/ N        printk(KERN_INFO "LED unregister!\n");# b  A) C- @: U& D! [
}
' f7 B( [% _4 J6 p+ e9 \* M/ Y0 j6 x) N3 k
module_init(led_platform_init);# |7 J9 N* M3 O& r0 F
module_exit(led_platform_exit);. b  c2 @2 N) B  f, K
+ t* Y1 U4 U7 i- ~4 Y! N
MODULE_DESCRIPTION("Led platform driver");: `9 f, }3 w* S0 _; B& |
MODULE_AUTHOR("Tronlong");# b4 P7 z& n# h. w$ Y$ F
MODULE_LICENSE("GPL");
% A5 e- c7 R7 }1 y, y3 `8 D* ?) ]
* W0 C6 c: ^+ j% g8 ^" m% M  P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 21:29 , Processed in 0.038520 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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