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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 Y6 V' `9 a6 V1 g2 l! S" K+ v#include <linux/init.h>
# F: R, ]8 y7 g* X! R2 u0 I#include <linux/module.h>- r  E7 w* Q7 Z/ E
#include <linux/kernel.h>
7 ]* T! S- L0 O2 \5 B( p, b9 `#include <linux/types.h>
  e4 h4 x; m- W. D! g5 \#include <linux/gpio.h>. p9 x: s3 O. |( r( n
#include <linux/leds.h>$ R+ e. F7 D/ ]! |; {
#include <linux/platform_device.h>
" n: r. F3 a" I9 {, c4 o* d8 |
+ E0 ^5 e0 ]$ K6 `$ J* w! {#include <asm/mach-types.h>
( G, [# _  }" B3 V) u9 e4 d#include <asm/mach/arch.h>
1 j" Z) Y/ b6 [#include <mach/da8xx.h>
7 H  H8 Z6 ?( V#include <mach/mux.h>
; G( \- b8 u$ S6 N8 w) T1 P; M% _2 U5 \: [9 P2 Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* J  y6 j- b- ~8 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 M1 V& Y1 C* W. q5 \9 W$ w  z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); f$ |5 I4 i7 k6 M2 I+ c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 Y! C- Z' P# M4 G6 Z/ U& _2 z# j! ]% E6 z
/* assign the tl som board LED-GPIOs*/0 U! v+ ^2 n! P) F: c: D9 s! U
static const short da850_evm_tl_user_led_pins[] = {
) a3 N/ K: O5 ^% H* Y, K1 g( J! f  T        /* These pins are definition at <mach/mux.h> file */. T3 A" m3 F' f" \( p+ B& f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  o- e1 K+ ?: D  o' Z        -1! ]5 G3 Z- t/ {; O
};
) R: B8 S5 I! i' o# A+ Q' [0 @! y  u% k3 R+ j
static struct gpio_led da850_evm_tl_leds[] = {
# i3 x  D- e! X6 ^& z# h' B5 i        {
( K! [0 w" E1 L  s                .active_low = 0,
. G  q3 E6 Y) Q8 x, @5 m                .gpio = DA850_USER_LED0,
% e# i: m. e7 o) K                .name = "user_led0",
- g5 d2 O* ~1 H% y. n2 H/ Y  y6 i                .default_trigger = "default-on",% E! B. M' L: c
        },* r( O) T1 T& \" H3 r
        {% _3 ^; z5 Q2 W& a
                .active_low = 0,
  u; o) z+ K# x  N: a+ I9 U9 i5 V                .gpio = DA850_USER_LED1,- ^6 S0 t* D+ z/ L* y# @* ^, Q" a
                .name = "user_led1",3 B4 T3 B+ ~3 G  y' I
                .default_trigger = "default-on",9 }4 w0 c/ b8 J8 P0 _; z) v
        },- G' u5 A" K' {! b
        {4 v4 A  s9 X7 d- ]) K5 v, Q- D
                .active_low = 0,
6 @2 Z. B& H$ Q$ ?, x$ c                .gpio = DA850_USER_LED2,$ G1 @& f* w& n1 R$ X( {
                .name = "user_led2",
  @5 B5 H$ Z+ j7 D8 ^                .default_trigger = "default-on"," U4 l3 G; m0 y& Z. V% e
        },
3 \4 V# Y6 K* f8 u8 b/ ?! t. L$ n( _' {        {
# s8 n. n3 v- P9 j. l3 @                .active_low = 0,
; E0 A3 B! x8 f0 t/ h( U7 t' _                .gpio = DA850_USER_LED3,' g" [# T% n! x# q" K' i+ x/ |
                .name = "user_led3",# {# n0 p3 B1 Z0 }% X' M' @
                .default_trigger = "default-on",$ R$ W0 @( x7 r+ }7 S, A2 V
        },
" c, r  u3 K1 {3 @; Q7 s; ?5 r6 S};+ ]- r2 n6 c6 V/ v$ [

  R% p6 ?; W/ H% ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 N8 o' u) v. x        .leds = da850_evm_tl_leds,
2 Z" M2 }8 p5 s  M4 q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: u! |. V' q; L- M, g- V: ?0 ~
};
) X, h6 @) Z# i; N, {8 e, F" a# j" u  j1 G1 ?( F% N0 X
static void led_dev_release(struct device *dev)
8 O: U6 }* w, Z! A{/ \; c# u8 s$ \* L  I3 E
};
# K7 R, T, p7 C1 w; q' y! p- U2 `( m- X. f& S6 d8 b
static struct platform_device da850_evm_tl_leds_device = {  S2 K5 J2 ?: u6 x- ?
        .name                = "leds-gpio",5 O" G/ s$ u0 n) e4 E) B
        .id                = 1,* Q2 C; B4 X6 a: E7 d8 `: S
        .dev = {
# m" ^2 F( v! D7 ?                .platform_data = &da850_evm_tl_leds_pdata,
$ n: Y" x$ m! _! Y- j+ v) h  ~$ h                .release = led_dev_release,
4 d* O7 J' n2 J; B% l        }
- D+ {" y+ ]+ }! X  K};% A' k3 _# ]! z0 L- }+ h5 V9 y8 `

7 p: d% M2 B9 d- i& X: j# O4 F% lstatic int __init led_platform_init(void)
% g. I7 M  y2 f5 t8 p' I{* n4 x  x3 y$ x  a3 u8 o
        int ret;
- x# ~7 f$ K3 }9 _+ ^#if 02 o' H2 @9 o4 ?. p% d, C) j0 u0 {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ m3 }2 {3 X/ p4 N1 p$ o* ]) z        if (ret)
2 n5 x0 |1 ?) V. e' F, w- L7 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% {  x! A0 R& L2 J+ a! E: s: `9 ?
                                "%d\n", ret);
; J6 I$ s2 h5 k7 F. a# b) d#endif! w; i* A) [( d' j; D$ q* M
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 r1 s: v) [/ a4 r9 _6 e        if (ret)3 r+ x2 T9 ^" W; \& r, U
                pr_warning("Could not register som GPIO expander LEDS");
4 @' d" E. \) r* T  `( Y        else
) H% p4 l" D4 @5 Q  z6 D                printk(KERN_INFO "LED register sucessful!\n");& K: Q: S6 o' l; y+ Q4 I( A
. T! U, `1 n2 z! L$ {2 W
        return ret;
5 l9 e* n5 B, G4 y  H7 m}
) Z2 z1 F/ b& g
# u9 }% _9 G, y4 Sstatic void __exit led_platform_exit(void)7 ~" b) v' x+ r" M+ I! N
{
1 k( D  R9 ]  u9 L- L8 K# t        platform_device_unregister(&da850_evm_tl_leds_device);
1 D2 ~! V& E# a& T
0 t4 ?( D/ d7 h        printk(KERN_INFO "LED unregister!\n");
0 n) x1 y6 F- z& X, w$ P7 A) O& U}, N% g$ C6 V% @$ T. _6 ]7 A" [
2 a2 ^$ j1 @9 ^% R$ n
module_init(led_platform_init);; ]6 t6 y5 [7 H
module_exit(led_platform_exit);
# z7 ]9 @3 k3 e
5 A# S* V' L' e- e6 {, ?MODULE_DESCRIPTION("Led platform driver");
  O& {9 c4 e8 f7 A4 u& jMODULE_AUTHOR("Tronlong");
' K8 B! O0 Z0 H5 [MODULE_LICENSE("GPL");. b) [. {% z) }0 Y9 k
$ B9 L0 m' s- Y9 n7 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-22 21:56 , Processed in 0.040031 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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