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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ F  r7 J& U0 q* y; |: M, ~+ Q8 G
#include <linux/init.h>
$ J. A2 I+ C* W, S& _% y; D  ?#include <linux/module.h>
8 u, Q5 |0 W  x5 J. U  F#include <linux/kernel.h>& h( j/ }0 ~" c/ T" _
#include <linux/types.h>
/ J+ S4 j% I4 _$ e* R#include <linux/gpio.h>. d1 `0 s, |. h- L2 [; z; I/ d
#include <linux/leds.h>3 ]: p% ?' o' N& L5 e% J
#include <linux/platform_device.h>
! E: H' V2 c% I6 R0 z/ s' ?5 {
' W4 ~/ s( F$ i8 W; N  F#include <asm/mach-types.h>
8 S# _% X+ `8 i- T, l6 c#include <asm/mach/arch.h>
5 F7 n1 f4 W6 f6 K' G  k3 C- g. d& g#include <mach/da8xx.h>
# {) b+ n7 U) i# Z  q% `+ [#include <mach/mux.h>
  h6 p( M( m& r5 R
6 J4 z5 b# h' w6 ^8 r8 S1 L9 S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' G- ~( M4 a) h/ j$ \#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): G( P4 ^7 K' T+ s( C3 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; p9 ~. s0 V% }# s* u7 [9 Y1 p* o: }+ ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ Y6 F, K% M  ?
; G" j* W- L! F/* assign the tl som board LED-GPIOs*/
  z# N& h  i  l/ S0 ~# x( Pstatic const short da850_evm_tl_user_led_pins[] = {
5 E) X3 h" ?3 n$ r, @2 u: d  [        /* These pins are definition at <mach/mux.h> file */
# ]; D: p, j1 s3 D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 z% N& a, u( E& O, l* }: p        -1
) F( y4 R+ j* h};
6 v4 G1 D' T' g+ S9 ^* ^
$ R4 k+ T& |' O. k1 e; ]static struct gpio_led da850_evm_tl_leds[] = {
) t2 ?, e. `: K6 L        {( L$ c# A. E2 x) g; q
                .active_low = 0,6 p" P& v% A& O
                .gpio = DA850_USER_LED0,( g, @, M' ^2 K. [4 g) p
                .name = "user_led0",
# z' C) ]3 l( @0 P7 P                .default_trigger = "default-on",- _( c4 `9 U9 Z" D8 P! l
        },
9 u' f$ W; e' k        {  u2 b9 `7 r' v) ~4 F
                .active_low = 0,
# i' g( m6 {, f% |                .gpio = DA850_USER_LED1,
7 y5 o4 g, m; M$ }% v6 Y( \                .name = "user_led1",4 z$ D) u) \; f* d
                .default_trigger = "default-on",
3 c. W3 a& {# @, r3 \        },
% s* O2 y0 t. ?4 M4 w+ g        {& A0 F8 P" E% G4 F4 j+ D3 y
                .active_low = 0,
0 Z" s7 I3 n$ X1 m+ F$ \# K: r+ l                .gpio = DA850_USER_LED2,/ v& F7 Q1 r, r& \4 C0 B! s8 s
                .name = "user_led2",0 h1 h' v& f& ^! m& I
                .default_trigger = "default-on",* O) b3 y. ?3 F, j8 F# v. M
        },
6 J, F# b' a# f& [        {4 N  Z* S  n8 p7 m, |
                .active_low = 0,
; w7 \5 \0 B  v, R; q' K+ f                .gpio = DA850_USER_LED3,
& [! J  [0 R! t8 A' W- G% h0 o                .name = "user_led3",
' m- w* q6 o+ @: `7 f/ }                .default_trigger = "default-on",
( p- P# D' n! n5 ?0 x& E- e        },
+ i) K( U2 o$ b6 v" e7 e0 {};
: q. f7 n! y3 {* z5 b7 y
& }, x  A( [% \; K  `; i$ Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: {8 E$ O$ \$ l' r7 M        .leds = da850_evm_tl_leds,% X, Z0 U) S1 v( i( O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. ^! F  ]; X0 u" w4 M/ d
};- }" X" ]: S! z: x: x; D7 g+ f) K6 ]

9 m" S6 D1 s9 cstatic void led_dev_release(struct device *dev). ]1 c: z- h3 y0 {9 Z2 A  F3 H
{
" t: {, N- h! c+ f};4 x/ B# L; j, v2 @0 M0 ~7 ?
8 q8 x" U/ I* d% G6 S
static struct platform_device da850_evm_tl_leds_device = {
! D# W1 {% X* X- S6 I& a# m2 I        .name                = "leds-gpio"," X" I2 V* [$ m% ?# ^
        .id                = 1,: N6 n1 n* X; J  a) ?9 U
        .dev = {; N+ ]9 i: B" I3 x& O0 R* y- C
                .platform_data = &da850_evm_tl_leds_pdata,
' u7 w% Y' z$ T                .release = led_dev_release,
' b% T" \+ H0 M4 O/ Q        }
7 ~+ [* R0 G! ]: a" s4 I};
; h) Z: u8 t) D& M1 r
2 a, c: ]* M9 t/ q% |+ Y1 tstatic int __init led_platform_init(void)
0 M* x9 W) Z& v( S9 Y% [+ h{
8 d$ o% O9 Y& g# g. d9 A, M        int ret;
$ V! E- P- h+ G#if 0
2 Q( _7 s# o0 P# e+ h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ o/ a3 w: X8 F! O! f        if (ret)
0 C* V  q  ~8 d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ W( Q6 o: g: Y5 P                                "%d\n", ret);
% u! W' \/ J. R5 e, c6 h#endif6 _6 S) S& {- n% v/ R1 L
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ N5 T( k, {4 Z2 e        if (ret)
7 i# e. u' Q8 C* r! O1 B# ~" x                pr_warning("Could not register som GPIO expander LEDS");
# V/ T) D; o7 e        else
- d& b' t" u* d3 S5 ^                printk(KERN_INFO "LED register sucessful!\n");
' i9 @$ \/ b) v& ^/ c
9 C# X  v) I3 i' K0 p  m        return ret;
( ?/ g8 p! M9 c- |/ X$ A}
- W/ B! m% [: I- n. F- o- Q2 o0 m6 o9 k6 E" u. K& n3 [/ O$ t4 E4 c% O9 i& |
static void __exit led_platform_exit(void)
/ U. B4 l9 ?7 a2 d( E{1 o7 j$ Y# [  M
        platform_device_unregister(&da850_evm_tl_leds_device);
  u( f  r- M3 H# p. S! Q& h/ W
) w3 E( O9 q& m; c3 z( o6 g6 G5 e        printk(KERN_INFO "LED unregister!\n");
1 y0 `& u! Y1 f2 c0 q2 F}
/ c/ d0 D* c7 ?/ o
* o8 n/ W2 p7 z* q1 Cmodule_init(led_platform_init);
# g$ Z1 o4 g2 K+ }' f+ |module_exit(led_platform_exit);
* A# j% X9 }$ B6 B( V5 A+ z; f4 Q
MODULE_DESCRIPTION("Led platform driver");6 ]: \' Y6 `) R  l6 L
MODULE_AUTHOR("Tronlong");( _7 b+ @3 A. l* m
MODULE_LICENSE("GPL");  q% _8 x" R+ q0 t$ ]$ n
6 E$ [2 {3 C' ^  X6 o5 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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