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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ B7 ]9 I& _6 ]4 Z4 i9 p6 H) {! ]2 c3 b
#include <linux/init.h>' N5 n! o/ {, Z
#include <linux/module.h># Y8 t$ z9 |6 c! t8 T1 ~
#include <linux/kernel.h>! K* T! `* f- N# s
#include <linux/types.h>
; q8 v. @" k( L#include <linux/gpio.h>
0 A; U9 X' d2 R. M5 j6 N#include <linux/leds.h>
$ O5 B, U8 Y" @#include <linux/platform_device.h>* q& B# q0 Z. d8 z
6 i; P: X2 W+ x, e7 K+ }
#include <asm/mach-types.h># z. Q5 Y8 Z' t# o: @) [
#include <asm/mach/arch.h>+ N$ ~9 N' k( z  t) \
#include <mach/da8xx.h>
& M/ `2 R1 ]4 W/ [" r2 X% W- `#include <mach/mux.h>
1 T0 E( Z2 w7 F
8 A  J9 ~% h& L( J1 T; q- R! }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' X* c' E% |/ }* E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& y7 J: ~! Y8 V6 a+ Z% m3 d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) B. _$ q( ^- S* o  E2 f$ C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) V& f7 m' m* a9 n  Q
6 U' H9 u1 ~- K5 Q4 b
/* assign the tl som board LED-GPIOs*/8 ^: q9 @. p6 ?' ^
static const short da850_evm_tl_user_led_pins[] = {; l$ D$ o7 M' ?# w+ K+ u
        /* These pins are definition at <mach/mux.h> file */. p* J8 {% G3 z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- @& K, }) U' h! M
        -1
" v8 K- k8 X- G+ c( S};4 {3 _5 p- M+ w% Y

! e8 C$ [/ w2 \$ }# R3 H  ustatic struct gpio_led da850_evm_tl_leds[] = {
" y0 o; }( o1 v& q! Z        {. M  M% D  l' p0 m
                .active_low = 0,
6 f- J8 O% x( i1 t$ A: i, Q                .gpio = DA850_USER_LED0,3 o; w1 [& R/ A% T; p+ L
                .name = "user_led0",
) _) M. _) G8 N+ U" D                .default_trigger = "default-on",; j4 s( ]0 {4 H$ q% ^" I
        },
$ o2 d$ P* F# C; I        {: z) B: L( r3 t! Q* W
                .active_low = 0,+ A* c7 K( b8 ~. |, L0 U
                .gpio = DA850_USER_LED1,1 l: n4 I4 v3 o  y7 b3 R  ?4 `( d' i
                .name = "user_led1",
- g: F, N! s/ _2 w4 A  b                .default_trigger = "default-on",
; [3 G  L. v4 T: f$ @9 j        },& |$ X4 |; E" a7 e+ }
        {
; L: n$ l+ d2 }6 K7 q& s; L                .active_low = 0,
- L0 |" Z  h9 ?8 x                .gpio = DA850_USER_LED2,
! f) V1 D; N/ u$ T$ e, r                .name = "user_led2",
6 b) m' W0 e: x+ C9 W                .default_trigger = "default-on",5 m4 r4 l( x% k4 G' ?
        },6 l, ^9 o/ {: P8 `
        {
# F# X& y) b+ D: F6 b. G* s) h                .active_low = 0,
: `9 |  J8 u9 x* T2 m/ Q8 v                .gpio = DA850_USER_LED3,
7 T! Z- Y9 y5 U4 o- I                .name = "user_led3",; k, C0 y' k1 z9 q
                .default_trigger = "default-on",
% P) ^; R* u6 F        },
  r  w6 U% Q" o};
! z. Q) g3 P. W9 ~' b, I  l
( _. U- {; g7 l. J1 mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! a  z3 a8 ]6 s/ ]  s        .leds = da850_evm_tl_leds,; J/ B, [/ |. b% P' ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& H' Q3 [: Z' u
};$ F" B* d! k' n  u: m% N) b
7 C4 c( P/ U) o8 f& Y2 W, Q
static void led_dev_release(struct device *dev)
; q+ L' n1 C# H3 B9 l{
& i+ @( o# q, H};7 H6 [1 b' S$ W+ h3 S
$ F' I# }, C$ l' t3 L, B- F. b
static struct platform_device da850_evm_tl_leds_device = {
6 ~- N  @8 `) O; J: c. [        .name                = "leds-gpio",0 w( ?6 j% j- W$ ~: `9 o7 v
        .id                = 1,
1 \8 t3 L: _$ T6 d: I        .dev = {. m6 _. k0 d; V3 F; u
                .platform_data = &da850_evm_tl_leds_pdata,* e" i2 g& v: i2 T! V5 d
                .release = led_dev_release,4 }) ]& x, b: Z9 K
        }; J0 u* N) {# z7 ~2 I
};7 t, n- z2 A! U6 c' j* o8 z( E( `

5 C6 k' q3 x& C2 J+ lstatic int __init led_platform_init(void)2 H/ {+ @) _2 Z3 J  G5 J" Z% P
{, f8 ^3 u" Q, Y! P
        int ret;5 l; `7 P% B' P9 B
#if 0
0 A) N1 Z" H+ W2 s$ f' c- v% c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 [/ p: B% H$ b$ g
        if (ret); l6 ^2 }7 N6 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 w5 C4 F5 j/ E
                                "%d\n", ret);
8 d, I. T, p. G& `% L8 v4 N#endif) U+ y# Z( A$ S* |6 L) Q% T
        ret = platform_device_register(&da850_evm_tl_leds_device);
- [; f) j2 g: [3 [        if (ret)7 Y- N0 M( A/ G; ?% c* }
                pr_warning("Could not register som GPIO expander LEDS");0 E" `" }0 E3 c& ]
        else
; Y# n2 r- i9 r. |+ p                printk(KERN_INFO "LED register sucessful!\n");; e! R; U/ Z# D' J/ M/ x' F5 E
, Z+ u3 B9 ^7 T& `% J
        return ret;
! [9 |+ G( Z9 E+ z% r  d}2 i1 x3 g6 Q3 c) u

* U2 {; t; W* x: g, A) G. astatic void __exit led_platform_exit(void)
0 y- Z6 d# n* b; f: p7 W9 p{
$ \) Q$ w! \" U0 F1 U        platform_device_unregister(&da850_evm_tl_leds_device);
  _' ^0 V2 ]. M: D& ~5 w% v6 p$ l
1 B5 m7 Z1 V6 [! Q) r! c        printk(KERN_INFO "LED unregister!\n");9 \  j1 K2 Z4 E
}4 B- g  m1 ^7 D+ C
/ K! L$ a9 }( {9 D1 c% S& d' x3 a3 h
module_init(led_platform_init);
: y, n& r5 w5 a2 U  I8 K0 Smodule_exit(led_platform_exit);
# x% ]7 Z5 k- n$ |: H! @$ V) m7 ?* C- {, M$ @& V
MODULE_DESCRIPTION("Led platform driver");
: O( e; l, i9 C1 I2 K' FMODULE_AUTHOR("Tronlong");' m# r( ~  O2 ~4 p( O% F' c
MODULE_LICENSE("GPL");
8 f8 v2 L4 d3 w% m1 h  k) _, D- K# _, @$ T8 e/ ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-1 03:51 , Processed in 0.041729 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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