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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& h8 T6 E, X: N# I+ A' p5 c( l; G
#include <linux/init.h>8 Y% s7 u6 T% |5 [+ R7 B, j
#include <linux/module.h>
/ v/ E  H$ H$ W#include <linux/kernel.h>5 h# f, h0 X" p
#include <linux/types.h>9 B$ w8 O% `" U
#include <linux/gpio.h>1 B* H' G# v, X0 m1 r* e8 F1 x' `) E. \
#include <linux/leds.h>7 V* I! I: N' R+ j. p8 |% x
#include <linux/platform_device.h>/ I7 a7 ~! P. g; U; x0 W
- `. M7 y. T% h: A5 G
#include <asm/mach-types.h>
  ?* y; L  z& U+ c0 U#include <asm/mach/arch.h>
& x0 _# A3 H8 k* |! I, H* h& w% C#include <mach/da8xx.h>
4 a1 D# D; n3 C& l  W  a#include <mach/mux.h>9 L+ P$ k. @) X' t$ m( w1 N/ l

: A  }: E$ Y( Q1 D' }! `2 g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 W& \1 B; l( Y$ `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) T4 Z) v7 a0 J# d* n3 B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 W& q- U5 B" [+ |* B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& y  t. D1 G3 n- l* n
- [5 j1 |5 `! t+ S" [/* assign the tl som board LED-GPIOs*/
2 {4 ~3 x+ G, d0 lstatic const short da850_evm_tl_user_led_pins[] = {5 N. t$ M+ r+ u  o0 ]' Z
        /* These pins are definition at <mach/mux.h> file */: p0 [. C. o7 N! Q( F7 S2 B* n9 T0 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( d3 |  G6 B* c
        -1) y0 p& U3 G6 o& }; `4 A
};7 w3 j6 \: Y$ ^) J) Q9 Y5 K* ~. ?1 T* ]

6 n) S+ ]! k* \% X0 t% vstatic struct gpio_led da850_evm_tl_leds[] = {& d, ^% H2 y9 c& f' ]9 z
        {
2 u6 W3 D$ J4 K( r                .active_low = 0,
1 N! A7 ]6 R+ c, _% d                .gpio = DA850_USER_LED0,3 w- s% T) A$ E/ `. Y/ n
                .name = "user_led0",
0 Z7 f! D( F3 v% V4 T  t5 ?3 `                .default_trigger = "default-on",
  u# w2 ?* W+ Q        },
) b7 H$ n7 N; ~/ T2 Q6 }" g        {- y. S# \2 Y' g" {4 i( Q
                .active_low = 0,
4 a3 T& m; t" o, A6 M' ^                .gpio = DA850_USER_LED1,
* L! t, c' L) Q: N% W                .name = "user_led1",
! U7 Z/ ^* L6 n/ [. B+ d  O                .default_trigger = "default-on",
0 n6 k1 R2 [  J        },
& }& P& ?& Z# y1 ]" k' D        {; r/ U* C9 y1 \; j! u+ ^( ]9 t
                .active_low = 0,
0 y; ~% Z! T1 R# ^                .gpio = DA850_USER_LED2,
7 ?% Q5 R9 v" x6 L1 U                .name = "user_led2",
" \. r0 T0 C* z5 S& i4 I                .default_trigger = "default-on",
' `7 G/ m$ E% B  Q# I/ U6 `% G        },/ y3 \6 z9 L/ d
        {& x6 ?2 \, {9 o3 d8 a) Z! c: n
                .active_low = 0,' @# Q6 V8 K, V. |# `8 P
                .gpio = DA850_USER_LED3,8 p8 V/ Y0 l" l
                .name = "user_led3",* I% c+ _* L( |9 z
                .default_trigger = "default-on",
4 W% V: P3 U& Q$ E( A        },1 M0 F# W* D, @- V
};
, C; a/ j1 u# j0 V6 `- P
0 A* G: f. [, O; qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* ]. j+ `$ N$ W3 [$ R$ r
        .leds = da850_evm_tl_leds,
# g( u: A) `4 k+ [4 G6 f3 b6 M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 c. c. X! z# J4 i* Q' {4 ~
};
" b/ F9 _0 K8 O% C) j- N7 }" s4 g9 y
static void led_dev_release(struct device *dev)3 |  G3 W7 w% f1 v. P7 `- e3 n3 g4 a
{' l" v  ~8 Z2 |: B0 Y
};5 L% x0 v8 l5 S& }

4 e0 z9 b- o! }4 n8 n! k# {9 {static struct platform_device da850_evm_tl_leds_device = {
- l# ^7 y5 S5 x3 e! u0 A% R6 b        .name                = "leds-gpio",
) f6 e7 J& Y5 r5 m4 }  f  t% o        .id                = 1," u( n; o" i$ B
        .dev = {
* ^( T; S8 _& n; G  N8 d% H                .platform_data = &da850_evm_tl_leds_pdata,
" |4 d0 n& K1 R9 q% y+ L+ Y                .release = led_dev_release,
( H2 K. J5 V# z# g% c9 K2 e        }
6 Y' f+ ^2 b# l) A8 U9 z2 v8 [0 j};3 [0 @% a7 Z, J' E# W: }8 M

  R7 P* a3 T6 M  k8 Q! n8 g/ kstatic int __init led_platform_init(void)$ l3 m9 o9 D6 A7 g7 \
{
5 R  t9 E" |' U; {        int ret;
. K# b: I2 }2 {& O#if 0/ o  V" I5 i  _. s) o7 w' k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 @* a, s7 o- a& z        if (ret)
; t* Y: U' t3 |, H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ N5 I; S3 o- f- Q; f
                                "%d\n", ret);
% j4 ~# h( l* X$ j#endif
2 m! q& D+ s3 W& |. l$ j' r        ret = platform_device_register(&da850_evm_tl_leds_device);
- f, S8 e  K& A        if (ret)
$ l1 v7 W2 }3 M  ]8 J  o* x, L                pr_warning("Could not register som GPIO expander LEDS");5 p1 w' d  u! Y0 t
        else
+ }/ X* F5 e+ F                printk(KERN_INFO "LED register sucessful!\n");# K. w. i" k' i' [7 J+ y7 u

" X- p  A: S& ^7 d& `! }  g, {        return ret;1 i- P; p' A6 R; F
}
, |- M/ H2 o  a5 W+ X9 P: x. u8 s7 I, X5 x1 q
static void __exit led_platform_exit(void)% n3 [7 _; e2 \, U" t
{
- f5 z+ H  d8 z) Z        platform_device_unregister(&da850_evm_tl_leds_device);
1 f/ N+ f, o+ m+ [4 k: K/ ^5 k% I- Z: V9 p0 W1 M
        printk(KERN_INFO "LED unregister!\n");
4 e$ i: G% H/ U}
0 O6 G8 S( E+ O3 ~! R: v
4 `& L: a* X9 B- }8 u$ Gmodule_init(led_platform_init);
; S1 f& k/ Y+ c6 v- [( g& wmodule_exit(led_platform_exit);
/ |  F7 d% y( |; V" @* u$ o& A+ E5 I# h- m
MODULE_DESCRIPTION("Led platform driver");
3 t, x8 {- i1 iMODULE_AUTHOR("Tronlong");4 d5 P) g7 v; g' v5 c5 T
MODULE_LICENSE("GPL");
- U5 \3 d) s7 ?+ l
/ q' S9 }3 S* v8 [8 E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-24 20:45 , Processed in 0.038468 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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