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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  a7 J1 [3 m! T# L8 D3 b& C; N
#include <linux/init.h>
! N- X" `5 m7 d. ^#include <linux/module.h>/ _4 X. M9 L4 H
#include <linux/kernel.h>
" {0 c+ y) L: K3 Y) U#include <linux/types.h>
8 ], P4 c. T/ n8 ]9 a#include <linux/gpio.h>
* ]6 U& r9 X4 L5 R: m2 m#include <linux/leds.h>
+ S- i* ?! G! E" s* v" I* `#include <linux/platform_device.h>/ `$ K4 k8 n' Q3 r
7 e. g! m6 D. \2 W: F! h1 T( O
#include <asm/mach-types.h>; n# W" K# ]  |- u* L- N
#include <asm/mach/arch.h>5 A# |- x7 {. s  A5 A! `1 I
#include <mach/da8xx.h>' M7 V3 T, I. z; y" c+ ^" q* B" M
#include <mach/mux.h>4 y% b$ c0 M3 X9 f

; j% q. t: g: G/ f( D5 y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- S3 K/ m5 g# y5 _+ X2 `0 Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  n0 O8 Z3 j! ]9 X& }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ \) Z9 e) q! S+ A+ Q2 {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( F7 i% {: ^/ g; e9 a5 a+ L( s5 C$ W8 o0 X1 z6 `
/* assign the tl som board LED-GPIOs*/- O% H3 D# L. |1 E# s" {
static const short da850_evm_tl_user_led_pins[] = {9 }! c, y# f; ?; e* S% w
        /* These pins are definition at <mach/mux.h> file */
* O% o3 v) @- c+ n6 ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; z( O+ l1 H, `& V/ u  [8 F* h' v        -1- c* e, ~1 T/ ~0 N, e2 d! }( R( ^
};3 i/ ?- e0 ]% u" A
- O2 O9 H" F" i* T
static struct gpio_led da850_evm_tl_leds[] = {' y( b2 a+ Q: K+ j2 q& V* B
        {9 w6 `9 q% C, R
                .active_low = 0,7 K/ h4 }2 k: Q' a8 t
                .gpio = DA850_USER_LED0,
% o- v" }, k9 }2 W: v% V- H! k  V                .name = "user_led0",
5 W0 }6 C, h9 T4 T, t/ E9 d3 s                .default_trigger = "default-on",
: j& y: T4 y* O: t  _        },
, }. ]! n: Y3 i% h        {) c  j  K1 j" A
                .active_low = 0,1 R0 K  W' s# d9 n1 ]! X
                .gpio = DA850_USER_LED1,
7 o0 o( O7 V( o+ G6 r                .name = "user_led1",
( p/ W( A& q( w. t1 b1 F) P- ?                .default_trigger = "default-on",
3 D% t; n6 Y% S2 O& `3 ^        },
( ?4 ^, ^: P  _8 T( u1 P9 u        {
, g( M, h3 O* Z' k# f                .active_low = 0,
$ U- a, z% |% E) S. ^! Q                .gpio = DA850_USER_LED2,
) L- @9 z& k: U+ n2 z" @7 t: g& l, a                .name = "user_led2",2 _$ f7 I# Z' E. N, n
                .default_trigger = "default-on",( P, W" R' n3 a' p$ ~! h' H
        },7 m* X( |4 g2 [0 z+ `# n
        {3 Y4 v" ]' D8 L! F( T3 ]7 t
                .active_low = 0,
. \7 |  `0 ^5 S6 V5 e# l                .gpio = DA850_USER_LED3,
+ s, S0 a( l2 O% a  ^1 C2 Y. B4 V                .name = "user_led3",$ a  [0 b5 Q& [. n$ x5 k
                .default_trigger = "default-on",
+ m7 g# m7 p, `# S+ c        },! t8 I! U  r4 r: S0 k
};3 t. H$ v0 b1 F  b6 \% r+ B* A; n2 S
5 z# Y5 p# G9 J: F) J2 p) r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% @7 t$ [1 i7 H% B4 I4 h2 T
        .leds = da850_evm_tl_leds,7 I2 @; C2 M4 G8 }. `# S3 H# g. b1 x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& H0 h' {3 r+ A* U3 j
};
+ t. x0 g: r; D6 c, e
. J' c- w) W: ]) G9 {9 hstatic void led_dev_release(struct device *dev)3 w9 F( x" \( V5 \' n% i
{; d$ v! T$ T: c/ z' g
};- N4 F" C2 K6 H! x

3 p, }' t* S* u& Sstatic struct platform_device da850_evm_tl_leds_device = {
* y( d+ S: C6 F+ x. _        .name                = "leds-gpio",& `6 x8 D. v. P2 i9 C
        .id                = 1,) ~! e/ X" _& d- ]
        .dev = {; W# |0 Z) T7 k0 |7 g0 O0 W
                .platform_data = &da850_evm_tl_leds_pdata,8 R/ T' {8 M( l" t( t
                .release = led_dev_release,
" z; r" N8 x& F: l- k        }
# J2 O- P3 K% w! }: I% W3 `};+ d& ]. `& b$ Y. [
: o- {# R& |. q( R* J$ E
static int __init led_platform_init(void)
& k+ ~; V. K" o{4 y5 y1 V9 o2 ^! `
        int ret;
1 g+ A& n' t8 L/ C9 J#if 02 C" h) Y4 k. [5 F) H- `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. w( @6 h# Z" X, R  a4 H' m        if (ret)
* t/ j9 Y3 l5 H. v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 q( j9 v- D1 z
                                "%d\n", ret);/ R* Q; b" Q# c
#endif$ Q$ o8 `- N* O: ~, J& b* T3 n( c
        ret = platform_device_register(&da850_evm_tl_leds_device);4 o/ n& Y$ z$ p( o0 ?  x7 b$ A
        if (ret)
% a, J5 [0 `- v, g                pr_warning("Could not register som GPIO expander LEDS");
6 h8 a! v  Y! ?; Q8 [        else
8 B5 L: o' @, A                printk(KERN_INFO "LED register sucessful!\n");
# E6 t( h$ a1 Y' X: y+ N
; i9 M9 x2 x4 b3 x% S        return ret;$ Y9 ]- d! v( S4 z2 J  o
}
8 Z9 ~3 L6 `# a2 D: a/ l* y$ c% u: R2 ~
static void __exit led_platform_exit(void)! W% a5 P4 _7 I# k0 p
{
6 D1 ^$ R& v4 S2 T' O3 ~        platform_device_unregister(&da850_evm_tl_leds_device);
) \  G+ e9 m) U: F7 t1 r5 S! F/ j6 Y& D+ c% w, {
        printk(KERN_INFO "LED unregister!\n");
- I( \1 T4 d5 W. A# t}: X1 q% Q$ s, U8 q0 [! ?6 [
: \) z6 Q" G; E5 o3 A/ M* V; v
module_init(led_platform_init);) G, F+ Z2 p- O9 a0 L! n, L
module_exit(led_platform_exit);
# z' m' J+ W- `+ {- S! h
# g  _8 T0 T! U( i0 u5 E; vMODULE_DESCRIPTION("Led platform driver");
0 d6 _3 W! U3 \- bMODULE_AUTHOR("Tronlong");9 J0 V# [  E9 W
MODULE_LICENSE("GPL");
0 a  `8 K$ _& X% |% R7 u
/ @5 P  O; E* }& l; f, Z$ c4 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-1 02:40 , Processed in 0.037228 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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