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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! Y( Y- k% G; i, f8 e#include <linux/init.h>. \3 |) y  A6 b0 b& F
#include <linux/module.h>2 v  I$ S6 y  g; K' ?
#include <linux/kernel.h>! W8 Q+ l3 q, r  s1 O
#include <linux/types.h>. `/ s' X1 v# O8 i. o
#include <linux/gpio.h>
% S7 u& M* k; c+ m. {#include <linux/leds.h>9 i7 ]2 n2 a6 O9 b
#include <linux/platform_device.h>
# K. c- p6 C9 C4 G1 j
2 G+ u- Q' Y2 t- X& z7 X: ^  }3 R#include <asm/mach-types.h>
7 }! P) K9 K# o# Q$ p2 g; x#include <asm/mach/arch.h>& O/ @2 f& i5 l2 S$ h
#include <mach/da8xx.h>
& S3 o  P3 X; X- n6 R; x#include <mach/mux.h>* w# v& s& @' T. L

; U2 W! `, Q$ w- U+ N* R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 m' V) \) y! [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" Q* |$ R8 ?, q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ h4 L) I9 {/ |" R: y; @' n9 q# z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 [$ v9 o, [" x1 H# @* H  U
' w- }* y/ j* b
/* assign the tl som board LED-GPIOs*/
, I  y- Y6 z, A9 qstatic const short da850_evm_tl_user_led_pins[] = {
+ Y5 N, j5 G- a' _9 P4 Q* w0 ]        /* These pins are definition at <mach/mux.h> file */
& [: B6 G9 @, O, ^% Q/ f7 Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- `: }! R: o3 {        -1
! J5 P+ B9 O7 P6 T, f. C};% P9 q" Q: j; G5 {( r' f

$ C! }/ H$ c2 q  K% y* bstatic struct gpio_led da850_evm_tl_leds[] = {% ^0 W, X! Y, L. J; s0 |
        {0 `4 Z  _8 x0 m
                .active_low = 0,3 _7 Q2 K4 W$ k; c9 L& I
                .gpio = DA850_USER_LED0,
& E% [% U2 ~: f4 ^7 Q                .name = "user_led0",
/ _( R! J/ w. ]2 x9 m                .default_trigger = "default-on",- f) ~0 @! T# |
        },- C1 X$ r0 b6 \2 e5 z
        {2 u0 B: L, K; Y' N# n" }( `- Y
                .active_low = 0,3 K3 L1 q/ ]2 I. o$ ]( \/ a& J0 d5 G% N
                .gpio = DA850_USER_LED1,1 x! [# \( g1 W( d# h+ N& h+ X1 Q
                .name = "user_led1"," n: |7 M, m" I! Z9 t
                .default_trigger = "default-on",
, I  H  r1 v) M. k, X; o. L        },
0 {6 f9 L, ]/ x: e" i        {2 O  z1 ^+ ?9 a* u( n
                .active_low = 0,
. z6 B' R5 H* Z4 u5 o6 a                .gpio = DA850_USER_LED2,: q; r3 G; a% @( f0 a: I1 L) D
                .name = "user_led2",! i" a9 z$ ?% A9 S+ }1 n6 A
                .default_trigger = "default-on",
1 U0 Y# v; ]* A2 I! S3 ]7 J        },
9 |/ a" V/ f1 d" E0 ]8 m: O% m+ j( c        {
2 `9 B1 Z* v. Z! ^                .active_low = 0,# y  J: R8 n! z( t
                .gpio = DA850_USER_LED3," m9 H& E6 _$ K) m- k. T
                .name = "user_led3",
2 o9 n! [9 h7 d$ v- U                .default_trigger = "default-on",
% b8 |9 [6 g8 P+ D5 K        },
5 J7 t5 B$ b9 A/ c+ J+ q};
$ |- T3 G. I8 i% l3 ?& ^+ {; A5 D1 {% y  ]7 d1 d
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 P! }' ^( T8 O# g3 q) ]* F# w" d  }' j
        .leds = da850_evm_tl_leds,
( n) o  E# A- o1 h5 p# J7 K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! _/ S) q1 ?+ j7 a' x$ {
};
, u3 X/ E: w8 o' d) h
. `" K3 `" f0 j  H. u$ M, F8 kstatic void led_dev_release(struct device *dev)
$ D+ X4 K' B# c6 o& T{- l8 W0 ^2 z, o" }3 G' c: {
};
4 z+ k- q' u5 E: K/ p0 P
- ?3 n8 U1 D6 Zstatic struct platform_device da850_evm_tl_leds_device = {
) q0 U' h. ^0 {. I* R) V        .name                = "leds-gpio",$ k; M$ w; T" N4 }1 V* R
        .id                = 1,0 y  R# s# M& G2 ]! U4 }* ]% u
        .dev = {% y; J4 B6 g4 ]* c7 \/ `
                .platform_data = &da850_evm_tl_leds_pdata,
! \! S& B/ H! R8 y                .release = led_dev_release,0 G$ B1 i# x( N( u4 \) M, e! Z
        }
) T5 a( x- [+ O  y/ c5 A  o% B};6 K- g. M; P, h

0 I  }$ @9 w/ U# sstatic int __init led_platform_init(void)
9 O7 ^5 U- ?/ L! E, F$ G' E$ J{
. R2 {/ [; {) P+ I        int ret;4 s6 A: b6 m& N( j" @
#if 0% g5 q! v2 E2 t7 u6 K
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 T- C( O* ]6 E- V8 ]        if (ret)
! A6 Y& C6 N  z& ?1 {% W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 B, e' c: b( u0 [, i                                "%d\n", ret);
* h' D5 g( y: T8 ]( u#endif
6 t: ]; a6 Z( ~+ S0 t        ret = platform_device_register(&da850_evm_tl_leds_device);
1 S7 d. o* g0 n0 \        if (ret)
! P* n7 P' `: E, q5 N, {3 f                pr_warning("Could not register som GPIO expander LEDS");
2 \4 \, x! O# c6 a        else
5 C- D; h1 @6 s& a& h                printk(KERN_INFO "LED register sucessful!\n");- L! E. l1 f8 Q8 d  h! }( t
7 w  y" j: J9 Y7 l
        return ret;
8 j* s, g/ i6 [+ _* B2 m}$ ]: ~, ^  r) X8 e3 ~* b0 M

* g# L5 G7 |- xstatic void __exit led_platform_exit(void)
4 q- T+ ?# _6 e) E: u2 N0 e& e{
6 L% n3 q3 l) g; e2 I        platform_device_unregister(&da850_evm_tl_leds_device);' e! F# h. T5 @

) d' w; \1 ]6 X: c6 j; n( K        printk(KERN_INFO "LED unregister!\n");; a5 C6 c( E9 T; I, y
}: q8 k) T4 r- \4 v
! X. p/ m* M7 B, U
module_init(led_platform_init);" B; F& x6 }  s& p3 |% P7 V
module_exit(led_platform_exit);# T8 W; W5 h& W! z. f2 a9 K/ h
8 q) @3 a: N" k- s! F0 Z1 e* B
MODULE_DESCRIPTION("Led platform driver");
, n4 [# T3 n; t# J5 ?' I* L% ZMODULE_AUTHOR("Tronlong");
5 y# y  T( ~6 z- z3 ?% g' qMODULE_LICENSE("GPL");
, b3 k9 W) ~- e* c6 q, s; y
  H. n3 B& I" ~8 {, N  |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 12:54 , Processed in 0.048404 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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