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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 o( K" S# e" i8 n7 R#include <linux/init.h>* V# T# G9 \: F6 x3 Y9 x: r$ d
#include <linux/module.h>
8 c! N( l0 I# K! |+ J: o* V#include <linux/kernel.h>
* @1 ^: W! T  p, Q0 l' }#include <linux/types.h>( C6 r( f! t, J8 m" _
#include <linux/gpio.h>1 j7 B" L- [! y5 [3 z
#include <linux/leds.h>
* T/ H. d2 N2 C#include <linux/platform_device.h>) l8 c% m& d5 z- R. z1 t7 z$ X1 ~- c) {

* V. P& p$ ]! I) p; l' v" \, ^& |* M#include <asm/mach-types.h>
2 u* A! I" G( J: l#include <asm/mach/arch.h>
; n7 L/ _" C8 |6 C+ n- G#include <mach/da8xx.h>
4 N& p& O+ J& x: `3 y#include <mach/mux.h>
& ^9 A: [5 r2 @5 j+ Q8 q8 M* V7 ]( @3 ~% z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 Z5 w% w0 h: H. _$ O6 G( R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 w1 L: q0 D; F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ P1 {; f/ q" J7 n  {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! W/ k/ X- M! E% l+ a5 y/ C$ j: K$ l. g- k  `! ]6 o
/* assign the tl som board LED-GPIOs*/
1 a1 n7 z( F* e) ystatic const short da850_evm_tl_user_led_pins[] = {# d1 O4 l. H7 O( P# K% I" S& D
        /* These pins are definition at <mach/mux.h> file */$ {+ a# D  H, [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- @$ W/ P. w& Z7 ^" v
        -13 `8 k) S3 M6 R. \" q. v' K
};8 R$ b* X8 Q  g7 H9 {" j
) i) _: T3 y+ J' z* s+ W
static struct gpio_led da850_evm_tl_leds[] = {
; q5 A* V) b" q  h! R        {/ p2 v  E3 `5 v+ G- F
                .active_low = 0,
$ o2 I& q. O9 B: s& L) r                .gpio = DA850_USER_LED0,
  F+ n! n  S6 ?# n" K: C; V: C$ r                .name = "user_led0",4 ?4 }! X' {' Y5 c4 f
                .default_trigger = "default-on",/ x4 \: Q% \( t2 P. w
        },8 `3 e0 i' m% O! n* J
        {
- _( c" m5 G6 t: n( n                .active_low = 0,/ Q, n2 U* M, Y/ Z
                .gpio = DA850_USER_LED1,
0 S; @7 I8 f4 C) x                .name = "user_led1",; N4 q8 C! M  L; V; f+ [; N; N$ Q
                .default_trigger = "default-on",( x$ m0 G1 G: D% E9 ?3 ^. ^
        },3 e3 V$ W& R' A6 X" y$ G
        {
: G0 Q/ P7 s# }9 R  i0 R! i                .active_low = 0,
! P  J) r+ C% z6 L- ~: j                .gpio = DA850_USER_LED2,+ Z* W0 O0 a9 Z
                .name = "user_led2",
9 \7 n! C5 S+ s1 ]% a1 w7 t, p                .default_trigger = "default-on",. [  D" r0 ?2 ~/ S2 r8 z7 m( B
        },
% S! n1 Q& `0 }7 X        {6 P7 `  Q) f3 ]; L: `
                .active_low = 0,( S. T" K; X) s5 p8 o, y
                .gpio = DA850_USER_LED3,
5 U2 Y& X, k# a( r  n, W) H                .name = "user_led3",  g( @2 x; T1 ]' }5 K1 j( J
                .default_trigger = "default-on",5 V' N+ Q* ~9 {& P
        },
  B4 u, C  K) u$ k2 n& H- P};: A6 z" Q3 D& d2 x8 e' D- j- {
0 x  E9 k2 {: E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ W5 y' M$ Q! r- C( d        .leds = da850_evm_tl_leds,' `  l3 l7 w6 g9 @/ j
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 |$ K7 G0 \6 {" P};
! a" s. v& |- f" k( m# e9 Q
. {  P% A, ?0 p) E+ {/ estatic void led_dev_release(struct device *dev)3 F- P9 _1 }, l( C% D1 b% ~
{$ {, U% r  n# |% L# C
};5 A" f' n2 l- W
4 ?3 o0 }6 F7 Z$ N/ J/ t! @. d! \9 r
static struct platform_device da850_evm_tl_leds_device = {9 @- d% `$ d2 }7 Z6 X) _
        .name                = "leds-gpio",/ [7 L3 d8 p; I
        .id                = 1,
6 C/ l: y2 \" f2 o7 l! T% [6 \        .dev = {2 b9 w6 A4 e) h( C$ C
                .platform_data = &da850_evm_tl_leds_pdata,0 M7 F5 Z  U8 m
                .release = led_dev_release,
7 l1 `' B# R0 w2 L* f        }
4 {( [0 a8 X, M0 _; Y};
$ C3 z3 l+ D. h! Z) ]& q& _2 m/ P( w+ U/ k3 V4 p
static int __init led_platform_init(void)/ _3 y5 Q2 @) z! }1 J* r0 @- F
{* a2 f. Z1 v! s) v) R, f
        int ret;
" a6 _, f: H9 K* t# r9 e#if 02 ]0 o  f' a7 u3 Q. n1 o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  A, O% I, `0 H* v
        if (ret)
8 ~% z4 |) [( j4 N" m' m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", ^: H* ]2 x/ T' L4 E- o# l
                                "%d\n", ret);+ s3 M' ?% M  m8 K% }
#endif
$ S2 G! j6 h( H' M        ret = platform_device_register(&da850_evm_tl_leds_device);
+ w0 B1 D' u# N4 r7 I+ J        if (ret)
% Y( _! h) b  v1 Y& S                pr_warning("Could not register som GPIO expander LEDS");2 F: ]6 i4 t7 k/ P6 ~, L
        else
6 u# [% w. w* B6 A                printk(KERN_INFO "LED register sucessful!\n");
3 n4 C5 \. A9 E; |
7 V+ o* O8 E2 ^# Z/ \( h  K0 l        return ret;
* N; k4 Z* h1 I6 t7 V) p+ C}
  E$ E0 B2 G9 B: ?7 H
: ~' \4 x, X) m& h  Mstatic void __exit led_platform_exit(void)7 o8 A" ?/ p# q2 i4 n9 y. \( M1 g
{* v$ T( e" x1 R! d0 d
        platform_device_unregister(&da850_evm_tl_leds_device);
4 Y& N2 g$ e* c% ^) N3 V' H6 N$ y, t
        printk(KERN_INFO "LED unregister!\n");
9 d5 @+ v9 k/ z9 j! v}
0 h  \+ Z! w* E8 g3 i  O, G7 a7 Y) U- u4 w% ]1 e4 R$ {
module_init(led_platform_init);
8 B  M8 _) J* ~8 u! umodule_exit(led_platform_exit);
# o7 D# v: E7 E* f2 f
$ F. N& P$ j. k2 L4 w- A$ FMODULE_DESCRIPTION("Led platform driver");
# p6 C$ |- l2 k. a& |: _MODULE_AUTHOR("Tronlong");4 b' u7 J  _5 x, ]1 o$ N
MODULE_LICENSE("GPL");# ?& ?) B: q0 S- U, V
6 v6 I; r$ |9 S% h/ I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 18:24 , Processed in 0.040492 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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