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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 n- x; }5 a8 v3 \+ d# @; d#include <linux/init.h>
: X( l( e$ b+ G  g#include <linux/module.h>" p3 ], v: G4 l5 K- ~7 k: q' L$ L
#include <linux/kernel.h>
8 e. G) W, F$ q; Z! f% R1 e/ k#include <linux/types.h>
: u% Y8 L$ W2 Y#include <linux/gpio.h>; p3 [* L! r4 v- w2 V4 N! u$ h! w- G
#include <linux/leds.h>
! U- e  N( x3 d#include <linux/platform_device.h>
5 a2 t0 h! G! b! l" n: Y. l) T# j6 E% f
#include <asm/mach-types.h>
$ |" I1 p' t1 {/ Y#include <asm/mach/arch.h>
8 y$ u8 J+ U# X4 x8 \$ P#include <mach/da8xx.h>  i( B8 @1 k, m, R/ n
#include <mach/mux.h>
& X9 C3 l7 M1 j4 E" E+ H4 @
4 ?, S  v; M1 _. |, ?# ^, r7 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 }$ m2 t. I2 ]
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 L/ X9 }# b% q; R5 z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% X3 U5 V% z; M5 E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( C) b% {$ m7 m7 Z5 o- k" L' y' v
/* assign the tl som board LED-GPIOs*/
! X1 L8 m! A0 z- ^4 xstatic const short da850_evm_tl_user_led_pins[] = {
8 R! v  q/ k7 z+ [/ Z        /* These pins are definition at <mach/mux.h> file */. k4 X5 g* x1 s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% _; B: g/ @8 z% _, d
        -1
+ e3 f& ]8 R& g7 B. G};; \+ e. c& b, t; `; U; ]3 E+ ?5 {

) B" }8 Z9 ~, `7 r* B6 R1 bstatic struct gpio_led da850_evm_tl_leds[] = {
- d' r, K. |9 p" _$ S        {
. B* i: Z9 O/ x- m8 S                .active_low = 0,0 Y! j* T# w; j; `/ t' b
                .gpio = DA850_USER_LED0,
$ @! B: j1 c4 {8 z                .name = "user_led0",! C0 o; X3 ?5 i9 [; g" V' K" H/ _
                .default_trigger = "default-on",
) A: x3 C$ w2 \0 K4 h# P        },! z1 `) u8 \  T6 {6 j. ~& S: w6 a
        {: z& J( }$ |, P
                .active_low = 0,
! O' F0 E$ m( D" O) C% \$ W                .gpio = DA850_USER_LED1,
4 |* {! L* v2 T- m                .name = "user_led1",
' K3 A5 L+ W" ?3 ^% b5 i  L                .default_trigger = "default-on",
( v! w. K* U% w        },! O3 l+ P9 M& H5 u
        {/ x3 F5 C, k- O8 @6 k4 U0 C& W
                .active_low = 0,
" {( |- j$ Q; \3 L                .gpio = DA850_USER_LED2,
3 w5 F! i, A1 p3 i- O, H* o! p                .name = "user_led2",, G; p/ t% X* Z/ B
                .default_trigger = "default-on",
1 ]! Q* k6 t7 K+ W        },. _" [4 o' i9 {0 e% B6 `: ]8 N! T
        {: U4 n; @% E, `7 ]0 L, h' F
                .active_low = 0,( Y: k+ H5 |2 M; N" i# N
                .gpio = DA850_USER_LED3,
* T, A  R8 j2 R; o/ n/ h                .name = "user_led3",
- W. b5 g) N0 e' X0 B                .default_trigger = "default-on",
1 e7 v/ i1 ^, z6 ]$ x        },, @% k4 }% x+ \4 t( ]7 ~  l
};
3 k) o" r/ z1 g" L/ A9 ]) p# B+ i7 @
1 @! n% S: N. w, Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 v$ i4 W2 z( h$ L7 ]
        .leds = da850_evm_tl_leds,/ A1 G+ N% F) T6 O6 l7 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; k6 j* V! x: G, W' a$ X
};
, ^- G  @& R3 X4 M+ ?5 b2 @# w& J4 O- A. Y2 d
static void led_dev_release(struct device *dev)
. G, c" }0 L/ V. p5 X$ f{
  K: H8 `5 ^0 T. A. G};
( v# r  N) m. o- t: n# z* g* U- D% \# X6 ^+ `9 g$ E/ I2 N
static struct platform_device da850_evm_tl_leds_device = {7 a" ~% D% e; l# u! r4 X
        .name                = "leds-gpio",$ i  A3 y6 g, P, s& h/ j% |
        .id                = 1,8 S3 z4 p9 s% h( W- U
        .dev = {, W* r: I9 w' Z% T, m9 |
                .platform_data = &da850_evm_tl_leds_pdata,
2 v/ P; x" ^3 n, ^# ~: ^# \+ A                .release = led_dev_release,
0 G. r! W/ b2 C        }
# f# t2 k% u' L7 E8 g- U};7 K' a8 c, l( R9 `/ `; X
9 U2 V7 [; T! c9 F
static int __init led_platform_init(void)
) V' [  n9 Y- S& Y2 r& w0 D! K3 k2 `# m{! x3 |  p8 O5 N
        int ret;( ], B0 a. k1 f5 t' A, I
#if 0" M9 q6 v7 a2 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: F+ s" v4 l" F# S8 t8 Y) y
        if (ret)
" F1 w6 H2 j# l5 W4 X0 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) \! W0 x+ ?3 X( T" |8 t8 e  c4 R                                "%d\n", ret);
1 w& }- e! r' q- G* t#endif
- |# z" [% R5 h! H6 r+ n# |        ret = platform_device_register(&da850_evm_tl_leds_device);4 v$ h( X' f2 _" ?5 r
        if (ret)! F9 p6 w7 E& y& P( [
                pr_warning("Could not register som GPIO expander LEDS");
/ O" _, B1 L6 g- V; B0 Y; z" F        else
0 H) T, X+ e8 _# Y. v3 g. q                printk(KERN_INFO "LED register sucessful!\n");
; i6 c; c0 Y+ ~
; f7 A/ V; g+ S% u! D        return ret;
) c, M! h+ u1 B3 A}
) I$ T1 J' b( Q2 X- L
! v' U$ i. ?5 E# {1 j) Ystatic void __exit led_platform_exit(void)# G/ d* }! h1 K; p
{
0 g0 n8 B) k3 r' u7 L  g& n        platform_device_unregister(&da850_evm_tl_leds_device);
; A# D1 o' C, R3 B( T! ]3 B3 M2 F, N
, u. q1 e+ [( \' Y, C0 o        printk(KERN_INFO "LED unregister!\n");
5 Y, |6 ~3 u7 \4 H( R. {}
) b. z4 ~: T5 o* |$ {/ u4 N5 I: V) t; m- y
module_init(led_platform_init);
' S$ x1 g/ [7 p/ @: H0 n$ fmodule_exit(led_platform_exit);
: |7 [+ s5 M; y4 x
" T( P1 [4 i- B( A# S+ `$ T- y$ Z' I. T! yMODULE_DESCRIPTION("Led platform driver");1 @* a4 S3 Z% |7 z
MODULE_AUTHOR("Tronlong");7 D% U/ o. U) E
MODULE_LICENSE("GPL");, X/ g) G7 h2 b  o

( N/ p3 |( ]0 @  W; b) `7 A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 01:15 , Processed in 0.037254 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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