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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 U. H- e3 E! ?8 Y4 F. C' j#include <linux/init.h>
# h9 k+ R( ?, b6 i8 D2 e8 V/ D+ l#include <linux/module.h>
# O+ W' k0 m2 |" P#include <linux/kernel.h>1 p/ |; |9 u1 N2 \
#include <linux/types.h>6 J1 j; s2 |+ x. D$ O  y
#include <linux/gpio.h>
- r3 C0 U2 W# I( M9 l/ S#include <linux/leds.h>! O9 i% e) z6 ?# |! Y0 e
#include <linux/platform_device.h>
( Z0 }/ y) U9 |$ z8 Q. H
4 e; D) r5 i* S5 Q& j#include <asm/mach-types.h>% _7 w/ u3 R5 U
#include <asm/mach/arch.h>) g: O* b- H! R: ?6 V* C
#include <mach/da8xx.h>2 @  \- N3 W" r$ H0 _
#include <mach/mux.h># }4 }4 J) q7 e! L- @/ x2 i

3 [; `& f2 d. y; x6 E) _& R( b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% j6 w5 ~3 P0 w2 |& j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; ^: Z# P- o7 S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; L+ G& R. l+ w6 ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 d8 Y+ z, R0 E7 H- M" \) [# k5 J- P8 H0 v8 H6 \
/* assign the tl som board LED-GPIOs*/
( A" A  _2 O. H& W9 Nstatic const short da850_evm_tl_user_led_pins[] = {* U% C0 b  E! F- N; I( i. L
        /* These pins are definition at <mach/mux.h> file */
& s4 u. I6 [- i+ O, N; i& w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" B0 d5 J6 U" {5 Z- V  x1 O  m        -1
, h  E3 A4 ?9 |  }) W9 d4 U- [};* o, H  q/ a/ B! R# {/ J0 X3 @8 v
  P3 [* `6 O4 B) j/ P6 p: Z
static struct gpio_led da850_evm_tl_leds[] = {) z$ e6 s) @* ]$ \- B* h4 f4 O; X
        {
4 P0 `) M8 ?7 f* W4 _' I: o% q; M5 V                .active_low = 0,+ e0 r. R$ ~* s
                .gpio = DA850_USER_LED0,: F' U9 C2 F) o, E2 W6 J
                .name = "user_led0",
7 z% \/ [: Y. I  C- ~) p                .default_trigger = "default-on",3 @4 ?0 R5 Q! _& e4 z
        },0 v5 x" e" d+ ~6 d( V
        {
  A7 W! ?7 v. n- G0 ^+ I                .active_low = 0,
9 T; v" h+ T5 e5 j2 _% A                .gpio = DA850_USER_LED1,  ?+ b# C# j! b4 E) q) B! Z4 s) z6 o
                .name = "user_led1",1 b# ]. r+ U( Z* ^4 R! L2 L
                .default_trigger = "default-on",5 y4 G# w. w& u( L5 W+ c
        },
2 O# y/ m( Z5 \( g        {
5 G! g$ U+ D& Z5 Y, T, ]/ h                .active_low = 0,
' j9 B9 G; l/ @3 I/ M7 [                .gpio = DA850_USER_LED2,
. Z7 J. b3 k. v' Z& M; O7 N                .name = "user_led2",
- Q* q. U( X; {- n2 n- ~                .default_trigger = "default-on",
" ]8 `" @$ k0 F2 I4 |9 S" E        },
; O5 }4 _2 N" m6 j        {
1 i- D1 @$ L$ h2 L% k                .active_low = 0,. e( O8 G1 u  c
                .gpio = DA850_USER_LED3,
& w7 F: l8 [& c% \; d                .name = "user_led3",
* Y0 w( x' p6 ^/ h) n' Z8 K                .default_trigger = "default-on",% P- }) o7 s/ d: H
        },
# L/ k$ M7 @7 m( s" s3 A9 _6 [};9 e) p3 A! R9 S8 E* E/ `' E

; f7 V9 l3 K4 ^. `static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, `1 K$ n: v( U' X0 M
        .leds = da850_evm_tl_leds,. |: z1 T, u3 Z3 |6 L' d7 W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 n- U, {5 L8 Q7 V2 M( {
};
1 r- e" \- J. m0 I, b4 `
, P6 K4 S' O! e! A" [static void led_dev_release(struct device *dev)" u5 G5 @- Y" }" @! Y# w  P
{
9 B+ z  C4 C1 W* H% }; s3 A# n};+ d$ p7 a$ m" }8 ?& {4 t* k9 O( m

1 }  j8 b# C/ K  _1 P3 ]static struct platform_device da850_evm_tl_leds_device = {
- u8 g& F$ \5 m8 Z        .name                = "leds-gpio",) [5 K, \: U: Y* X
        .id                = 1,$ G" c' h# }! h8 c
        .dev = {
2 J7 S6 v$ G# x7 P3 i  x/ f. {                .platform_data = &da850_evm_tl_leds_pdata,9 c1 m/ o- O5 q/ {, `' a
                .release = led_dev_release,
! i# g8 `: h% R' v/ o0 v6 L0 P        }% s. s0 Z, W5 D- N+ _3 O
};
/ ?. |" B( L; p. C7 r
* ^+ b  z2 o& r' X1 d/ c2 Tstatic int __init led_platform_init(void)
. o- x) i5 x5 Y1 D: A{
" Y; m- k% M6 H' L        int ret;9 a. j+ a5 v) R( Z2 s- Q
#if 0
0 I6 l1 c& i0 M, M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) v4 C# o$ g5 L4 I. _9 N        if (ret)
: w. t5 Z  E3 v3 l) F4 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& `+ A: o- a( N- d' Q* K
                                "%d\n", ret);
2 T3 Z: L+ ~) X#endif$ a+ e4 a3 e0 n/ r5 W/ V
        ret = platform_device_register(&da850_evm_tl_leds_device);4 C7 q$ o/ o4 X" L6 `* [; D( e
        if (ret)
" t6 e' L3 N/ w$ ?/ y9 A& _                pr_warning("Could not register som GPIO expander LEDS");2 e. C/ r" n2 c5 C( k1 K4 L
        else
, s/ X+ V  h6 j; Z& k) _, ]$ S0 C                printk(KERN_INFO "LED register sucessful!\n");
% U+ U! q$ q+ t$ m  o3 a" E; Z8 n$ ]2 k% |; H) W% m
        return ret;7 k" @; T" x1 H' G7 b% j
}
  b0 w8 v( G% h: `: e* I/ Y. [/ i3 p  R2 T" @
static void __exit led_platform_exit(void)+ m- g/ Q. f/ f. I7 D3 {; R
{% x7 i+ F. M3 z7 ]2 ]
        platform_device_unregister(&da850_evm_tl_leds_device);
5 Q! T! g9 p  f$ [* |4 v0 U( e9 }& t
        printk(KERN_INFO "LED unregister!\n");
# V! l8 ~. \' }9 Q! s}: l. z) V4 P6 V! P  f
$ q; V- k4 _$ B6 b/ O0 [: x
module_init(led_platform_init);
+ V7 |% k& h4 L) Hmodule_exit(led_platform_exit);2 Z5 c) g' ]2 i* L

# J% _: D: v! y6 z' M# v8 H) PMODULE_DESCRIPTION("Led platform driver");
; e: H4 l+ l* ?7 qMODULE_AUTHOR("Tronlong");
/ h7 U; B; E. @MODULE_LICENSE("GPL");
6 |6 |0 [% m5 [6 R- x. N# a
% D$ t/ S- }+ y- d7 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 12:07 , Processed in 0.038793 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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