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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( U$ L1 r5 M& l( W9 h
#include <linux/init.h>2 k6 @4 x- ]+ `3 T  g0 T4 |' S
#include <linux/module.h>+ U9 }# f; {' ]; a5 l, `
#include <linux/kernel.h>2 ]- I$ C" W6 m, a
#include <linux/types.h>
) [. B1 S: l! }#include <linux/gpio.h>: \) I$ G1 ^3 w% W
#include <linux/leds.h>- Q3 B: N% ?& R* V: X4 W
#include <linux/platform_device.h>
) J8 o+ |+ ^1 y$ E3 n
! G% O( i( Q0 G$ d#include <asm/mach-types.h>5 V, J5 f0 z( d" A+ T4 j9 L
#include <asm/mach/arch.h>! `; e0 q' Z$ X6 W
#include <mach/da8xx.h>4 ~- O/ b' y. `; e" U! b, t1 U) v
#include <mach/mux.h>
6 m- c, \; e# @) L& [! c* T3 a- F: n; x% O4 d# }8 _7 J# M" K+ r
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 N+ \- N/ G0 W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 v1 M8 D" `( h& {( Q! Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& X- `; @# ]+ ~2 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 M3 u1 Y: a  N9 B

0 d9 h  a# U) s( h, L/* assign the tl som board LED-GPIOs*/% V9 K3 n$ `- N4 f! u. Y
static const short da850_evm_tl_user_led_pins[] = {5 n; e% t5 Y! Q# G, n
        /* These pins are definition at <mach/mux.h> file */7 C( c( i3 k. A# v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( |( E  x" S9 ]6 E' J. v
        -1, ?2 _" Z9 T% [' B+ j$ ~
};" w5 _: k+ o5 t; |, @5 C

+ C* U' `7 X, t3 y3 astatic struct gpio_led da850_evm_tl_leds[] = {
0 U7 m7 T2 a; _& s% G9 T0 L        {8 X6 s  a* c2 C) ^3 L
                .active_low = 0,
5 d- z. E; y" w- Z1 |% g                .gpio = DA850_USER_LED0,
. P2 w  h( [$ a1 k/ M                .name = "user_led0",' t" s; W$ E& {$ n0 ^8 T
                .default_trigger = "default-on"," J# b/ c+ b) }0 a+ T
        },; v' |- i  W- _* P0 I/ z9 W
        {
0 T% O  u! e1 A; j                .active_low = 0,
8 l+ ]& r+ ^; M' Z                .gpio = DA850_USER_LED1,
, D' @; E0 V: q9 {3 F' N" _9 I# O                .name = "user_led1",
% @8 @  Q; i4 S- l                .default_trigger = "default-on",
- V. C8 D% }' t        },
8 t0 ]5 y* L2 a+ @; J        {
! h; N0 _" V' G                .active_low = 0,
) I/ _- I  m  e. D  {; Q. x, }  p                .gpio = DA850_USER_LED2,# u$ O) Z2 `# t# P# {8 ^8 N( k6 u
                .name = "user_led2",
( F) n0 Y3 @  C; x" m: ]& ]                .default_trigger = "default-on",# E/ a$ u! D0 Y9 i
        },
- W2 V0 [/ R2 o        {; q1 W  h8 E# ^' X6 e  u
                .active_low = 0,! m5 B/ T5 |4 F, j
                .gpio = DA850_USER_LED3,% E3 B( ~3 {1 B3 K  {
                .name = "user_led3",. ~9 A  H8 h0 H, Q% I. ^' r) W" j
                .default_trigger = "default-on",
) y+ V/ ?% e7 D        },% }$ M2 z/ [: `; A# R
};- C( K! Z+ n+ ^2 X  k
" Y0 u( L' n, U6 b* G/ S4 m! E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" j' x/ ^; g# m. `; W& ?5 s( j  f0 q
        .leds = da850_evm_tl_leds,+ @, s  [8 x. h6 o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ z& n5 _( i# y4 O, t  Y! e};
' \8 r$ p& s8 o3 M3 [3 d& e8 ^0 F3 T8 P8 t
static void led_dev_release(struct device *dev)
( `  H3 H; f0 E8 y' T{* h, l$ R# }: r9 h
};; N* f! c6 `0 y% t! d! s. O

* o$ K( w7 h/ Ostatic struct platform_device da850_evm_tl_leds_device = {0 g. G9 |- T% m% `$ @& N+ ~& `6 S3 N
        .name                = "leds-gpio",
( k5 G' t( V! j( \4 a        .id                = 1,
0 a. \5 E9 O( o2 O" m# \" _) B        .dev = {
0 {: B9 R6 h& X5 A0 ?- J% ^4 d4 l/ ^" c                .platform_data = &da850_evm_tl_leds_pdata,
! ?/ Q; P) i5 e" @% |                .release = led_dev_release,
$ B3 ?& F4 G7 n: S) ~! I2 ~1 h' Q9 |5 t        }" C& Z1 t# R) Y) E
};
9 L  w2 O& J( [# @" m1 d& U/ s5 N- c# |% k' k( k% |0 E
static int __init led_platform_init(void). L/ z5 x0 D1 u: b3 E& v
{# M$ v- }* z! ?+ y0 A
        int ret;
( I8 |. i/ t+ u2 Q* |8 {. P#if 0
* E- [: l& e6 H( L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& B5 X0 B& e5 a; u
        if (ret)
! H3 c8 a0 B2 g7 l( P* ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, u+ z, Y( L7 ^+ P6 L) V9 P7 d! S                                "%d\n", ret);
& [+ e' x2 p" {8 ]' n#endif9 V* I5 w+ O, w5 G5 E+ A, V
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 B0 a9 T! N# `* U, s+ w5 d        if (ret)
" C* O  g: i! Z0 u4 m                pr_warning("Could not register som GPIO expander LEDS");
0 \( P; Y5 p3 d. I+ c; c4 I/ W* \        else" ^' Q5 `" @/ P: p- ]; C
                printk(KERN_INFO "LED register sucessful!\n");
+ |8 v0 _$ Z( m% g% o! t# n: V2 n) T
        return ret;
  i) [8 Z/ r5 I! p5 f$ `}& S, d5 I0 F# w7 m7 Q% k$ v
! ?2 `4 o6 y, {
static void __exit led_platform_exit(void)6 o% v4 N8 B9 F, Z  q
{
" @  d. a1 }0 q8 C: X# V3 K        platform_device_unregister(&da850_evm_tl_leds_device);8 C4 v" L+ o8 `5 Y

4 W$ W9 z1 z* H/ p8 N3 d        printk(KERN_INFO "LED unregister!\n");
$ y) p/ |; P" l9 h- m9 f) ?5 s4 X  Q}4 o& j3 s% v. k) c  }

; n9 Z: Z  x% g# y8 ?% k$ hmodule_init(led_platform_init);
1 X( H' u' Z* u1 Pmodule_exit(led_platform_exit);
1 v. Z! Q5 V" K7 a3 K
, h' J& Q1 s6 t! a' x! aMODULE_DESCRIPTION("Led platform driver");
" T( v  ~' ]; d. L6 h# U1 `MODULE_AUTHOR("Tronlong");- d" P) R2 ~) q$ s/ C
MODULE_LICENSE("GPL");
$ |' v; x3 F- ^6 h+ f3 u* t
; s& Q$ p/ {( v6 O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 04:55 , Processed in 0.044106 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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