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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ v  C) M3 \5 }* Q9 w/ k" b, C1 _
#include <linux/init.h>
. c- J, N( {# a! u; h1 x- Q$ u) _( s#include <linux/module.h>! T- \+ R, k, O5 p( W& h
#include <linux/kernel.h>
+ n/ f* P9 r% d$ c#include <linux/types.h>: u0 W6 r4 d! E9 Q  {! l! F
#include <linux/gpio.h>/ F1 S. a/ o) f2 f
#include <linux/leds.h>+ c1 l$ K, Z3 p! P5 j
#include <linux/platform_device.h>
$ K0 M# |8 K1 T: I5 i: D$ h( b( [/ v. d+ E
#include <asm/mach-types.h>0 l; o5 N" L* P
#include <asm/mach/arch.h>1 n" Y7 r9 ?5 l- [, U
#include <mach/da8xx.h># ]' Z% [5 p8 j# B
#include <mach/mux.h>
- I, I2 O( `, Z. G' d2 n* o. E9 M% O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) Z& p  K3 g7 A: l$ `0 k* F0 H/ e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# F! n9 U  Z; T1 z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). r9 O. c" G: d# g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): j8 b  `" }- S& g, f! B0 ~

6 [; f& c* {' d- z$ W( [, ^% L/* assign the tl som board LED-GPIOs*/
; ~! g7 Q0 {: ?: |0 f; L+ P3 m% istatic const short da850_evm_tl_user_led_pins[] = {7 q/ P$ ?- i8 U$ ~# }
        /* These pins are definition at <mach/mux.h> file */
, D! C6 s" j, q$ T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 T7 w3 V7 B* G+ e1 z/ {% J& e' `2 u" |        -1" h" o2 U) H+ U! Y
};+ l7 X- i& ]" W8 ?1 B) }. Y) n
. P8 I- }" R6 [
static struct gpio_led da850_evm_tl_leds[] = {2 w' Z( ?. l, n* h$ s4 E7 U
        {0 M  x5 \7 _% h1 X" Q
                .active_low = 0,9 d: H5 z$ q3 u
                .gpio = DA850_USER_LED0,1 h: V: t7 D6 ^* q& M' k
                .name = "user_led0",
( T) W  |7 e1 N7 h0 _, ~                .default_trigger = "default-on",  j9 G5 ]. d: i' f8 s) W
        },
* u. P  V; O# I) g& h        {( c0 C( z% H) A
                .active_low = 0,8 M7 D% j5 q- n9 H9 L7 ]
                .gpio = DA850_USER_LED1,1 ~7 x" T4 o- m: g
                .name = "user_led1",
& ]% B7 I" U# ^) Q) w- O" L                .default_trigger = "default-on",6 g; i) p# P' c, j- }
        },' m+ R" E9 }4 y) G5 l
        {
  h; w6 y+ @, a( X' R' ]( V                .active_low = 0," P$ `) y9 D" Q: {3 V+ |  u
                .gpio = DA850_USER_LED2,- `: K  }6 ^9 ~$ L  w/ N, ]
                .name = "user_led2",
  R# @% ]% D) Q* w! M1 Y                .default_trigger = "default-on",7 |0 H5 I0 s. F- P- D
        },
+ c# u8 ]4 H# c; U# a7 m0 i6 I9 d        {
' z# k1 x3 c6 X# N- K                .active_low = 0,
. Z8 G( H% m3 T9 J8 k* O                .gpio = DA850_USER_LED3,
( ?- R" E* v/ |+ B- z# D                .name = "user_led3",- q7 q$ f* V1 G7 o
                .default_trigger = "default-on",
3 L: a+ R2 x% A3 {        },1 n* R! ^8 D8 P7 y* J0 J
};' O  A$ t' d% S: Z
3 A$ K  K0 k7 j; R( ~3 ^" M- _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% ~# v' B5 c4 ^& D' S( O7 s. v5 f
        .leds = da850_evm_tl_leds,7 m/ t& ~- g) x! l$ H/ S' o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 e' J* x: e# S; Q, K- B% ]};) x/ Z/ T; D6 o. i) v4 [% `6 R! _5 ]
2 n* b8 C) o# [: A$ c4 h3 |% s7 j* Q
static void led_dev_release(struct device *dev)
9 g6 ^7 ]1 n' _" G! Y{
$ c" ?# X9 b0 U8 @};3 B7 j$ G, P% A4 X7 Z8 E
% w" t  C5 [% X9 r/ R) E$ x- |
static struct platform_device da850_evm_tl_leds_device = {
! N; o0 H8 N; x1 W% G4 S        .name                = "leds-gpio",/ _& b3 r1 J4 O6 m- v
        .id                = 1,4 U2 ~) r. K+ z$ {, V
        .dev = {
1 O% Y/ I7 |: t& M) U# ^                .platform_data = &da850_evm_tl_leds_pdata,, i& J; b* s: ]  G; M2 h6 Z
                .release = led_dev_release,
% i. z7 {& j! v$ e6 z        }
! x4 b) u) w$ n$ W) ?};+ K, n0 k6 @# }1 E+ K
8 u8 ]! @2 L( U: k" ]
static int __init led_platform_init(void)8 C# A! L( L! E% G
{: j0 e- p  S7 ~
        int ret;- Z  k( i* J" Q+ U
#if 0
8 @  j  W: N' t4 L; c0 G7 d0 p# Q* F9 p        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ n! ^7 t* p- z! C. @0 d& s
        if (ret)
8 v5 i" i, S$ U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# c+ ^8 x# t+ h2 k1 _$ u+ y                                "%d\n", ret);
% A; s2 B, Q0 A7 t* }#endif* v7 h' i* \# z( a' m7 G* C( y! g
        ret = platform_device_register(&da850_evm_tl_leds_device);
( ]! K3 @4 Q& h( G        if (ret)1 H4 p2 T" L  w& t) r. T
                pr_warning("Could not register som GPIO expander LEDS");
" H. |* T. u- L3 y+ A# U% U1 a        else
/ n/ P8 u( J/ Y                printk(KERN_INFO "LED register sucessful!\n");
: Q+ s' r3 ^8 j+ [' x* U5 p5 @3 s2 ^
( r3 X* u& y3 P7 u, s9 n        return ret;+ ?9 x2 D' c  l4 ]1 v
}
( x. x: h; C& |# S; ^# U! `) q
2 J" z3 I8 \9 l: d6 k( P7 qstatic void __exit led_platform_exit(void)2 W5 a" H% l2 X! l2 s0 T
{
2 V( J& a, r* o+ B% ]        platform_device_unregister(&da850_evm_tl_leds_device);. m7 D2 S4 e! ?. g7 {7 i
5 L0 O2 f4 t  }7 @% C
        printk(KERN_INFO "LED unregister!\n");
$ o# {' t! |3 W( ^% J4 t}
7 }# E* E# m/ n( J
5 I) H$ k- n) Omodule_init(led_platform_init);
3 V. c2 M) t0 T' f/ M$ `9 t/ Pmodule_exit(led_platform_exit);
- i8 E% Q6 {. s5 d
  M6 Z9 c4 I- i* {( bMODULE_DESCRIPTION("Led platform driver");, Z5 r& z- }0 D. f( g3 e
MODULE_AUTHOR("Tronlong");
6 F" m" [5 t) u+ H7 gMODULE_LICENSE("GPL");" n  H! N% q1 t

  D! t5 u8 ^8 r' G! w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-20 15:20 , Processed in 0.056433 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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