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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* s3 H, Q# j; c* E  B$ s#include <linux/init.h>
: w- S- R; y6 s" n, [#include <linux/module.h>  x* q( L5 o5 c# a! [" ~
#include <linux/kernel.h>
/ h. u$ |; E4 D* f% Z#include <linux/types.h>( |& ?( f* E  m9 A
#include <linux/gpio.h>) N& f# {% \0 y  a$ ]
#include <linux/leds.h>$ w6 b! ]. I1 j7 N, a
#include <linux/platform_device.h>
6 s7 l" }6 S- O- r% J
; M, T5 i6 ]5 e+ |$ y8 Q" Z#include <asm/mach-types.h>2 E5 d1 U9 \6 }$ m
#include <asm/mach/arch.h>) z! u3 i* u4 p9 g* U) p4 L
#include <mach/da8xx.h>. Y4 r5 ?& `) _7 o2 Q8 S* `9 ^
#include <mach/mux.h>
- o( K  }4 |: ^  j* i  a( e1 D2 w0 Y/ u! P. Z  ]  {( A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' b+ Y8 x; V3 L( k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 U2 e& {: x; d  t1 {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ {7 }( J5 P4 n1 D6 s% V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ y' ^; I& C% d! x6 B! g8 F  N  K' z6 d' O
/* assign the tl som board LED-GPIOs*/" m% b8 g$ H" s+ r1 U
static const short da850_evm_tl_user_led_pins[] = {$ q0 m/ j5 E# d( a
        /* These pins are definition at <mach/mux.h> file */  @5 v" j6 c7 i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 m. ?4 j2 k$ ]9 f( i+ h        -1
% l( T9 E' w7 c9 q# |, B/ D  @/ g: S};8 w6 }, a! g5 O2 m8 b! {& ?2 F

* B& b  s( S6 K8 tstatic struct gpio_led da850_evm_tl_leds[] = {
! b9 W& V' c3 I% E5 _        {
; y  d/ P% y( j4 r) b/ l, E                .active_low = 0,
! W5 @* {! H! G3 P# _4 g                .gpio = DA850_USER_LED0,
. w3 h; |/ o- s# S, V$ I4 T8 |+ ]. n                .name = "user_led0",+ C5 z3 n* o7 X% ^# w
                .default_trigger = "default-on",
& Y/ `- H# e6 v  B6 F( E0 c0 G        },
9 c  ?) J7 C# u  P+ |# N        {  M. p/ A. i9 z5 f/ z# }$ F
                .active_low = 0,
$ H8 J! L8 {" i1 n/ i; B: @                .gpio = DA850_USER_LED1,5 s9 W! q3 ~% ?
                .name = "user_led1",1 u5 _$ V! ]8 q, @2 Y9 d+ ^- }
                .default_trigger = "default-on",
+ f! W4 }5 c3 e1 ]/ p$ z5 a5 Q        },& X% }$ m6 Z/ T% Q, b
        {
8 @5 M  n7 T6 L/ q, g2 U0 i. P                .active_low = 0,
6 Q' W! S. R: R, g. J1 X                .gpio = DA850_USER_LED2,
+ F5 |4 h5 h4 J                .name = "user_led2",
" r  W1 `! Y/ P* p( \                .default_trigger = "default-on",
; U+ g  d' A& Y% l: o4 M! J6 L) V; G        },
" `4 Z! R) ?" j9 H: S5 D        {5 t$ ^+ E5 N% V  X0 X& c) J# W! D* C
                .active_low = 0,
! e% h) i1 Z! Y  o# N2 _$ f7 {                .gpio = DA850_USER_LED3,( I7 p$ K# V% w0 i
                .name = "user_led3",
  {) r* {3 y' k: r* `                .default_trigger = "default-on",' |, J6 i+ ?5 [
        },) Q* @- R- ~1 h, F
};/ l* c4 B, G0 I" Z2 c0 {( q

' A! L$ C0 v/ Q6 h* O. N# N$ F/ ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 J$ r0 j3 `# W' }$ d4 W9 f
        .leds = da850_evm_tl_leds,
8 `0 G+ a1 }: B1 u/ L' k3 }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 x/ G4 A3 k. k
};
3 m6 C4 a8 R, M7 D. u0 d0 G% T) a5 ?( I4 b# ?! g8 K
static void led_dev_release(struct device *dev)7 K& H+ C  u  E4 I! s
{
0 j. z4 M2 }$ _6 K/ |2 G% F8 n};
0 R' R3 D4 R* A7 X
/ p, g# u6 p$ J) U. E  D$ [8 O2 dstatic struct platform_device da850_evm_tl_leds_device = {2 y7 \& {; @8 [0 b+ w8 J+ V" d
        .name                = "leds-gpio",& C7 r0 s; H. d, J* z$ x
        .id                = 1,
# u. R: d0 }6 s8 Z* K        .dev = {
1 B& V* R- q# [0 |/ G0 m5 C                .platform_data = &da850_evm_tl_leds_pdata,
' Y+ c- l7 r: G! J                .release = led_dev_release,) I6 G- B( C" N! i' d" g
        }: W! t, M. r4 Z. g
};( E0 v; d5 Z. C% Y

0 @8 h9 E1 U/ ~" z$ y0 E# Dstatic int __init led_platform_init(void)" w% `  j: ~8 l
{7 H, ]2 u( o) J# v
        int ret;
) `, P  z; V* d+ d/ ]5 v/ j4 k#if 0- i1 s3 d# Y, H( e  ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& y7 g, I" ?0 _
        if (ret)
* H( G7 C& g! M2 E. k, U; U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* O. e: I3 n7 u6 g6 i  J3 R                                "%d\n", ret);/ d  N8 T5 W+ V4 r8 U4 p
#endif
& c6 Z# `4 ?2 z        ret = platform_device_register(&da850_evm_tl_leds_device);
% n" y8 ~  D' d3 `: U        if (ret)
5 v- f8 N8 A+ v6 Y                pr_warning("Could not register som GPIO expander LEDS");
- k& J9 @/ L! F  I        else. k9 p6 L8 i" @2 G( F! L. C  w
                printk(KERN_INFO "LED register sucessful!\n");
9 H# Z# \% L8 i" D5 f5 g! e8 S- f7 u- [& t3 f, y
        return ret;" [2 v' g! D0 I% b
}
/ b2 F8 e# r; D7 v. j" g. z
* ^, e! ~' Z# P! A6 y2 pstatic void __exit led_platform_exit(void)
8 j) [) K9 n9 l" L6 O" o% y{. g( Q/ \. n2 D0 W% ^. e% U. k) H
        platform_device_unregister(&da850_evm_tl_leds_device);
# c6 l( Q: {. C# G& F' S7 |2 }. E' [5 `  b5 s. o. @
        printk(KERN_INFO "LED unregister!\n");$ [* W8 _6 i" N5 k7 Q3 Y7 Y! ~
}
1 x# Z2 [2 i; N! \) \
  M2 n- l+ F' h. Amodule_init(led_platform_init);/ a: |4 L# T3 D% F, l
module_exit(led_platform_exit);
# f  R2 S0 V  f. i3 T3 @
) E; ~" `9 i; J  r2 hMODULE_DESCRIPTION("Led platform driver");
/ \# Z7 G+ o" M) X7 x4 A9 qMODULE_AUTHOR("Tronlong");5 S6 j+ W- t, F6 R6 ~" J
MODULE_LICENSE("GPL");
. N5 {! Q( r# A& ]
: W4 W8 ?+ c4 u+ Q6 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 02:27 , Processed in 0.036900 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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