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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ A+ J( ^/ M/ z/ ~; B8 R% _#include <linux/init.h>
9 X5 h5 A% |1 S8 }# ^#include <linux/module.h>
, @) E5 j# c+ A% O#include <linux/kernel.h>3 k6 Q4 T7 [5 I8 _4 `( U
#include <linux/types.h>9 P) J/ A% T& |, [
#include <linux/gpio.h>
! [# a" B1 a9 M6 f% E. W0 |#include <linux/leds.h>
1 J* D' Z/ K" V+ ]#include <linux/platform_device.h>
: M! a; a$ m& F. R
' D/ A5 Y7 g  v4 w' n#include <asm/mach-types.h>! i+ ~: d7 P4 t$ x) x4 k
#include <asm/mach/arch.h>
0 D( l/ G+ @* l9 F#include <mach/da8xx.h># w) E2 b3 w. E3 ^. {. D. J
#include <mach/mux.h>
( q9 i1 F6 C: ^  l( c3 }2 F, V; j* [# `* F; N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% D& N, z4 u$ F& Z# D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ p$ L6 {9 B) d; Y" M# ]! U4 e8 f3 T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) C  H/ `  o' t& z3 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), `1 @# c- |9 [$ \$ b9 ~

! C9 X) C7 L. |/* assign the tl som board LED-GPIOs*/
; q5 B% t4 j7 ?3 [7 a% `$ {, Zstatic const short da850_evm_tl_user_led_pins[] = {
1 |  ?4 D1 s6 \4 B9 U" w4 v        /* These pins are definition at <mach/mux.h> file */0 q: \. M. q6 O  x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  a8 G, {! r$ S+ B. |0 x7 [
        -1
$ P- b9 j/ T0 k};+ i8 p9 s; T. r# \5 p; ]9 `
! T9 b6 q5 e, e5 y; ^0 {: p: L
static struct gpio_led da850_evm_tl_leds[] = {
, I* B2 X2 B. ^- k0 E" U        {7 W# y* f) V( Z, H
                .active_low = 0,
: D) c: v* Y: g0 K5 Y                .gpio = DA850_USER_LED0,
! P, s: u5 C7 r9 c9 d                .name = "user_led0",
7 v; G+ I: P1 B                .default_trigger = "default-on",
+ C, n- Y8 I, D; Z        },
8 }! o3 i& H) W/ T" m        {
2 n$ U7 T$ ]; y5 O# ^                .active_low = 0,  K6 W  n3 R5 G
                .gpio = DA850_USER_LED1,' g9 W( m% p! h4 r
                .name = "user_led1",# h  g& q9 `: N
                .default_trigger = "default-on",
+ Y8 d* ~) C  {0 f/ @: C; h0 s0 p        },
6 P, P5 t! _/ c* q        {2 a0 L9 d2 o4 b( k- b6 V0 ~6 q
                .active_low = 0,
- T- D! k* I* Q7 T* U% q. v- G5 Z                .gpio = DA850_USER_LED2,
& R. ]( i& o$ i. o9 u: M                .name = "user_led2",
1 \) ]0 {2 _1 d7 Z. o9 k" I9 m                .default_trigger = "default-on",; Q# U7 r8 L; y$ [) e4 j' M
        },
$ ?5 j. c' u+ g  w7 w; ~        {* Z7 ^" ~4 R4 d. ~$ y- f( H3 ~: U
                .active_low = 0,9 ^' b& `) ~6 D; n1 b
                .gpio = DA850_USER_LED3,
0 R' H9 ^3 g4 ^4 M                .name = "user_led3",
) n! t9 ]2 y1 ?" y! [                .default_trigger = "default-on",! f9 U- W4 }  R/ ^4 W$ _
        },
: l3 |! L/ I" t/ Y7 P! W. d};" b( ?0 J& d, p2 w4 e0 [# b
. P  V4 ~( a# D/ a( \0 [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 ]3 k: Y) K3 \; ?# p" c+ z
        .leds = da850_evm_tl_leds,6 R: |' v5 M3 n0 H: q3 W) l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 N7 N/ s* a0 u};4 F6 U0 m$ n) [; s' G

( _% i. R0 V3 r+ jstatic void led_dev_release(struct device *dev)
, X) Q& f3 x% f# r$ Y1 n{
# }$ V+ G, g% ]2 x) p- z" l};9 N9 i4 k" S# ]5 z/ n
2 n6 j: X/ J* N5 E
static struct platform_device da850_evm_tl_leds_device = {
- p/ Y( v) r& \* L5 i0 b* {- b2 M' H        .name                = "leds-gpio",
# j+ Z, b2 Z- p3 d. V3 b        .id                = 1,
1 {) I6 c. t) a        .dev = {
2 m6 s, ?% `7 x                .platform_data = &da850_evm_tl_leds_pdata,, \! J1 d& o0 Q% A1 l
                .release = led_dev_release,
: V# R  n. W4 N' D* D        }
- t, L4 L9 d% Z' ^' e% |};
; \$ g  C5 d" L  t" {! u' X1 Y. c2 y/ D
static int __init led_platform_init(void)
  m# u8 {; L( V6 ?% m{2 y) c5 z3 G7 \- u7 J6 o8 }7 u
        int ret;3 t- D* ?, T* }) |& d, v0 \' P
#if 0- k2 ~; x6 Z% X# w9 n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 _- N% w' ]9 ~. _! D        if (ret)
# p" V, ]3 B/ a3 e( h+ @; C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, S5 W$ j* L/ H* x; o$ R5 J                                "%d\n", ret);
) K/ h/ i: r) q( N. [  b* h#endif
2 V; u7 M8 i. v        ret = platform_device_register(&da850_evm_tl_leds_device);7 v% F2 ^) ~6 g; G
        if (ret): @% a7 Z- e5 [- c7 _4 O
                pr_warning("Could not register som GPIO expander LEDS");
% R# Y' M% \( o  S( B) o7 m        else. g& s8 l+ O6 ~+ q, z
                printk(KERN_INFO "LED register sucessful!\n");
5 w) y4 q$ @/ |+ T; T# O* B
  d8 Q5 v4 `6 C* K1 k        return ret;4 x+ N& s. v$ K) M2 n
}# u* D2 a) y% ^* p
% q4 V" z1 P" d
static void __exit led_platform_exit(void)
9 ~: O) Z6 _" ^6 |  W, ~0 F/ v{( o& ]& A" f2 l5 S. n/ f
        platform_device_unregister(&da850_evm_tl_leds_device);
. {7 z9 `7 I' H# ^
7 S9 S$ R2 _& E; a8 ]1 x' l7 Z        printk(KERN_INFO "LED unregister!\n");0 H# J% w8 ^1 W, j: M9 H
}
+ _6 H" R0 I# j( d* Y0 U6 ~/ V' j8 P$ ^( u" F5 _% y7 J5 I
module_init(led_platform_init);2 S. R: n6 f3 P0 x: \
module_exit(led_platform_exit);
  n7 ^% C2 z5 ~$ {- w: L7 w8 \$ F3 j$ ~0 @" k4 O8 \8 b% o) C% n
MODULE_DESCRIPTION("Led platform driver");
4 h  ?) |. S+ K- Z- c& G8 O3 r+ ~: n4 {MODULE_AUTHOR("Tronlong");
' i% ^$ x1 M( _MODULE_LICENSE("GPL");4 Y& u; Z0 F1 O' P  s

: q; Z6 P0 K+ W# [* p: Q( ^2 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 18:06 , Processed in 0.036455 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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