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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 m( p0 Y& ?& \0 Z$ G
#include <linux/init.h>
3 D& d+ U! C7 [/ J" l* ^0 z#include <linux/module.h>3 I6 q' |0 x% H4 Z" Q. y3 e
#include <linux/kernel.h>* w4 |9 t! [9 U0 {5 T
#include <linux/types.h>: p9 V$ D; h8 X. @( n- m+ `
#include <linux/gpio.h>
; U' m# z$ ]4 Z#include <linux/leds.h>
7 B( w8 v' s: O  O#include <linux/platform_device.h>' z5 @  H8 F  q1 F5 t0 k* q
& }! Q+ Z0 G; ?6 _
#include <asm/mach-types.h>
# C) o$ i! j" V  x) J2 L; {#include <asm/mach/arch.h>9 H  O# I; S* D  A  k
#include <mach/da8xx.h>
4 {; g+ P4 j: r( k5 \& w' g0 _2 b#include <mach/mux.h>
7 r+ e4 P9 K/ p5 T1 r8 \1 P3 b9 n# L) U$ l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 b4 q+ B- F1 n. m( _, r, n1 Z$ T. b
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# V8 y# h7 ?' s! j  Z- Q$ q* M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 l- H/ y) f) J2 B  l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ l  b! ^# R& Y% f! z0 d+ z: \' L
$ \$ \# s9 |: s) }) W
/* assign the tl som board LED-GPIOs*/
; E% y; D2 s; N$ }, _) Xstatic const short da850_evm_tl_user_led_pins[] = {
! i8 p/ R2 B/ Y) Z, b/ g! M        /* These pins are definition at <mach/mux.h> file */$ c6 @8 m7 {7 a+ ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; f- u0 \. ]( `" }        -11 o/ z3 c) }8 e* v$ w- c8 `
};
1 y2 w: X$ L: F" ]; t3 @
' B$ U& r7 A# z5 sstatic struct gpio_led da850_evm_tl_leds[] = {
; P1 W) S; y0 _+ m9 S" t0 C: T        {
8 X7 W& B" e7 {6 z+ V4 m% ]2 z, k$ ~                .active_low = 0,. M% }  b) ]2 H
                .gpio = DA850_USER_LED0,
5 Y/ X5 u0 E1 A                .name = "user_led0",
6 Y! m3 J5 T+ C/ w/ L                .default_trigger = "default-on",
' Y( X; K: ]: m; O# [( u        },: p2 N3 |! F. [: |4 y# N/ r, [/ L/ V" U
        {
5 T' [* d+ I3 D+ g$ U                .active_low = 0,$ d# U0 [. I0 c. v0 b7 Z- ~
                .gpio = DA850_USER_LED1,
7 I( w5 @% X5 K                .name = "user_led1",9 x8 n1 h5 ~, \4 ^9 T
                .default_trigger = "default-on",) L: e5 E* B8 |7 \
        },
" F3 U# ^( f/ X5 q3 D        {
. n1 e: D& O7 ^8 A                .active_low = 0,  g! D' z0 a6 F8 Z
                .gpio = DA850_USER_LED2,
( |9 U$ h9 M8 Q) y. F1 p- n) x* k' {                .name = "user_led2",
3 @6 n' m- [# B# V5 ]; u1 c$ z, o                .default_trigger = "default-on",- N* Q. i; l& O; p
        },1 Q" k8 ]' D8 X+ j" ?, |" e( L
        {, i4 m+ E& c3 l4 O' |' x4 n7 P
                .active_low = 0,
# e/ C$ T! T6 u) Z# \9 q+ x; r$ B                .gpio = DA850_USER_LED3,
, U/ [; x& d  A/ E7 A                .name = "user_led3",5 b' g3 Y1 d3 [7 A% l) g/ M
                .default_trigger = "default-on",
" n" j2 A8 N" D9 _: g* o) C        },, e5 k1 o+ z: q, C3 ~
};* a7 W& t0 i% w6 f& q

& e! O4 y- ~: A# Z: W5 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* Q# [" q! b2 P& t+ U! v
        .leds = da850_evm_tl_leds,- u# U( l% B3 c( g5 O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  v$ W) Y2 _0 A, \9 |; p7 o};
# p: @; F( \" l' v; v7 K$ n8 ^$ G/ }) h4 M* Q
static void led_dev_release(struct device *dev)
  g0 ]: f" z$ E% s$ W4 w{% _" z" ^# w! U: _0 Z% p- d0 ?0 I! _
};
# H# `+ L- \0 V+ i" n+ B  w" k
9 [: z+ l5 A, \; P# _9 Pstatic struct platform_device da850_evm_tl_leds_device = {0 a- `0 B5 H/ ^( q, E: w
        .name                = "leds-gpio",5 O6 T: B6 I( S5 L
        .id                = 1,% v' L# U- s$ V" U
        .dev = {+ M' s* p* A/ }) |5 n
                .platform_data = &da850_evm_tl_leds_pdata,$ I3 {/ I+ c2 D: z& A
                .release = led_dev_release,
: i( ~4 j8 c0 m8 |0 q        }
; a) y/ r  o) }/ z};% ^9 Q0 `  ~+ H2 z" z0 b5 Q0 x
* {/ Q2 S' U) Z& w/ I. \4 v2 e  ^% j* m
static int __init led_platform_init(void)
* [4 q# n4 g# h+ i: U2 k/ e{4 ^) y5 Z9 t" P
        int ret;
5 [3 _- h4 `! h8 A4 ~#if 0
# Y. L- h0 ~/ n- o9 s% g  W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 W1 J. i+ F& r& k# _
        if (ret)
% T7 v+ U& E% q; R6 s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! }! }' J8 _+ T( U) c6 q                                "%d\n", ret);* u  e0 v8 d! X( K7 n
#endif- r1 m$ j- H$ S: c
        ret = platform_device_register(&da850_evm_tl_leds_device);
) e, g3 v$ H2 i        if (ret)
' n9 v3 I8 f7 h4 d  a                pr_warning("Could not register som GPIO expander LEDS");) c+ y9 P$ Z" S4 N
        else1 e! @' w* o6 x- Y2 a. J
                printk(KERN_INFO "LED register sucessful!\n");
7 T7 m% q* d( x$ y3 j3 d9 x) L* f6 t3 D) M6 W1 X
        return ret;
& H! \: c! g1 X* S}3 E& A# a% \: }" H+ z, R& E
0 e2 u/ C+ B( u/ b6 Q8 A4 @% L, P
static void __exit led_platform_exit(void)+ l) R: a2 ?5 V5 F% \  |
{( L, e. A* u2 _- C* R+ l) M
        platform_device_unregister(&da850_evm_tl_leds_device);
" y6 }3 P* H- I$ U0 p4 E' J7 X5 X" H/ H* t& L+ T6 ^+ \, n
        printk(KERN_INFO "LED unregister!\n");( p* P8 p3 L$ A7 M
}
$ k& ^' X2 l8 U9 ]8 [( F9 Y+ h. C7 A. ?1 V( |: Z5 T
module_init(led_platform_init);2 [, a! X4 q7 ]$ E" {& N
module_exit(led_platform_exit);
' M, o+ }0 ?! ]  z
' S# l3 Q' r3 Q' {6 u' a1 P: dMODULE_DESCRIPTION("Led platform driver");
# ^( p9 l. n- u& a- E. XMODULE_AUTHOR("Tronlong");2 p& }* z% j: V; m: J
MODULE_LICENSE("GPL");
: z* q5 G: B0 F) _1 K- b: B7 c
$ K( Y9 n; k: S5 t8 w) F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 08:11 , Processed in 0.039120 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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