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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 L& s; G% Z( k
#include <linux/init.h>7 H) A6 ^. C# m8 g! Y( ^
#include <linux/module.h>8 m1 `+ J. H& H/ r6 y6 e4 r
#include <linux/kernel.h>' y7 s5 Y0 u( K- x, l% H& B
#include <linux/types.h>* V+ j- ?9 l! u, y8 f4 V8 m$ O
#include <linux/gpio.h>
, z( Q; r( \2 Q#include <linux/leds.h>. }) ]4 s9 W( }/ F4 g: x* j3 M8 O2 j
#include <linux/platform_device.h>. G& s5 C$ \2 z) r5 ]
! y3 l2 _; Y& {  I0 j
#include <asm/mach-types.h>2 u0 ]4 H8 l/ b* g' t
#include <asm/mach/arch.h>
5 n. f+ x4 M. d% W  S" f" c#include <mach/da8xx.h>
% O  w6 A! w  ?: d& u' S#include <mach/mux.h>
0 D  o& W2 t0 H
5 M9 B- F8 y1 w7 A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, G; a2 K3 N$ T1 l2 p7 e) z. J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* p* K* ]- R+ q" Q5 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 L. J4 g% Y; M# j2 e8 i1 F5 a) z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 o- K3 f. y6 Y+ _- `8 Z$ F) m# ?
/ f& c9 W3 F8 ]& k2 T
/* assign the tl som board LED-GPIOs*/
2 {, e( w  _3 qstatic const short da850_evm_tl_user_led_pins[] = {
0 M* V0 L* B7 u# r; h# j8 P$ Q        /* These pins are definition at <mach/mux.h> file */
5 M8 _  C$ m4 o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 M1 b$ J9 i1 K& F        -1
5 N& f/ d5 ^- z  H/ b* j& C};
# s2 |' U/ i5 D) k* P# }3 w3 `# F, x( p8 H! L
static struct gpio_led da850_evm_tl_leds[] = {& x/ X5 h+ c  j3 Y# q% h# b
        {: C& b2 ?& p# R2 {( H( L
                .active_low = 0,
" Z+ o  O: n5 B' t: c/ ^" f                .gpio = DA850_USER_LED0,
* ?2 a  u- B2 u% p                .name = "user_led0",
! L' t$ t- E8 b4 C                .default_trigger = "default-on",- n2 E, g, \. ]: c( [* R/ Z  N
        },
& I& e# K# \0 B; E/ U5 Y1 j        {5 @& q1 Y- S7 f
                .active_low = 0,
/ h& |3 F2 D+ f3 Q9 M                .gpio = DA850_USER_LED1,8 i" J% W* @3 w( {2 P: X
                .name = "user_led1",: [3 _# I3 S3 ~) C" O
                .default_trigger = "default-on",) W& ~/ D% ], q' N8 j
        },
7 u. a( D* D; l- x# X, @        {3 L' w3 y- G: U
                .active_low = 0,/ i2 G5 K8 X% Q
                .gpio = DA850_USER_LED2,& U5 c$ h! q0 r- t, y8 _3 A
                .name = "user_led2",
: P& F* D6 W& X( J6 p& V8 F                .default_trigger = "default-on",
6 T0 [- ]- m1 `/ C        },$ O2 _' S2 i: U( l2 u. G
        {
2 I' U6 B/ v9 R3 [1 }" ^3 N                .active_low = 0,! P2 n/ s! s. [( E
                .gpio = DA850_USER_LED3,
$ i/ D: ^: G- o5 D6 p' j                .name = "user_led3",7 y* a! i* c& a) n! w) Q* i" L
                .default_trigger = "default-on",$ Q+ f+ |8 |5 c$ u0 }7 d5 j) y6 H6 X
        },
# G  F3 l8 Q: ^! u0 f5 B) H2 ^8 [};
. x/ \$ y5 ?5 B1 Z4 j! [9 [- i: y& E: g8 T0 x7 G! H3 z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, P1 U6 p2 m& w, G3 p        .leds = da850_evm_tl_leds,
6 k* ]* O% E9 H" t' _$ ]8 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( P  O) T+ J" E- S& e0 S8 r; z};
/ j$ ^9 O$ F" p* K. p! }
) k* k$ K/ p2 [static void led_dev_release(struct device *dev)
: K) R- ^+ i, _8 U4 q  a{6 g# {# [* |& l9 o3 k; G# t' ]0 f
};
' {/ K2 T3 L5 f" `0 G6 }3 s9 J& z9 z, a2 n$ z) z- Q9 i
static struct platform_device da850_evm_tl_leds_device = {* g8 g: s5 `1 P3 }
        .name                = "leds-gpio",/ e; d$ p/ c& y/ ]$ F0 ]
        .id                = 1," c: x* Z; C  I  T/ ]
        .dev = {2 X2 e; a4 v& U8 e4 m* C! G
                .platform_data = &da850_evm_tl_leds_pdata,
. `( ~2 [8 q3 }' v$ ]                .release = led_dev_release,/ Q3 V0 {0 E/ f* B( J
        }# ~: \. J6 ?, G0 U& v8 i
};
) E8 W, g! M2 }! Z: ?7 @. v# l( ~7 l# a- V4 q% [3 X
static int __init led_platform_init(void)4 X  V8 N$ C. H3 H* X. ^: h
{
! R9 k3 `( i) `- Z- k( @        int ret;5 P1 d/ m& |; u! q4 d
#if 0
2 ~* P5 e& {4 a' k: {) {7 t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 X$ l$ e0 |# ?! N) h0 f1 N% f7 k        if (ret)  V6 k9 n9 p% a6 e" G8 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 `( B6 l; }7 K# B( L, Z                                "%d\n", ret);
1 }% T, G) j# n) |# T( M#endif: M' u3 K0 U" m" P  l% V+ E: p: j
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 n8 ]3 H' d6 X! A1 P. Z        if (ret)
$ L* b7 }: F* B' e9 h2 i( R                pr_warning("Could not register som GPIO expander LEDS");
& M& `/ u/ y7 F; c  {: ]  k( V        else* l2 Q$ i' z8 h+ G+ v& ?
                printk(KERN_INFO "LED register sucessful!\n");
6 b# F5 x" W$ q7 a
$ i9 e& N, C: U; s5 G        return ret;. V8 i% q% L9 U' P5 [
}1 G# V6 [6 I9 G$ a

7 o& N9 Q+ j  ~9 j, ostatic void __exit led_platform_exit(void)
3 r6 V6 w" M* K1 u6 j' `, B4 s{5 l! `9 Q) j" C3 ~9 D9 s5 c
        platform_device_unregister(&da850_evm_tl_leds_device);
4 d5 j, F; D0 g
( v1 o1 g4 N3 m5 M, r- i        printk(KERN_INFO "LED unregister!\n");
8 ?. {7 I& z8 W$ t8 S4 s- o}: e( \2 c% n; a2 N/ y# v) A

- C% C1 a3 R/ I2 k3 Nmodule_init(led_platform_init);
+ U% c! |5 }2 ^1 ]5 I9 @0 z. J6 ]module_exit(led_platform_exit);
# Z. `# T! ?" s5 V9 U
, H/ ]3 |, K& J6 P5 GMODULE_DESCRIPTION("Led platform driver");
8 G0 j/ G* v$ S) yMODULE_AUTHOR("Tronlong");/ E' r& X) g4 V- I$ x1 l
MODULE_LICENSE("GPL");1 I& O  |. {1 N- q
2 |: B7 {: m* V* V2 s" q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 15:00 , Processed in 0.038459 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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