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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 A6 i- D3 U. H/ B5 \, E
#include <linux/init.h>
- ?) K" ?1 y" N  g- d' y6 r/ z" o#include <linux/module.h>, n9 G& }# c! X* S! h: j
#include <linux/kernel.h>  J* P2 S. i; \1 c, h/ d$ v- W
#include <linux/types.h>
$ K% h5 L# _( a2 m/ e+ ]#include <linux/gpio.h>+ M4 r3 t& n3 A& a. q
#include <linux/leds.h>
6 L$ T9 N0 }- Q3 V( t#include <linux/platform_device.h>
8 n8 j! w: I& O; K- i* ?( D' {
( s; D# Z- Y2 n( j#include <asm/mach-types.h>
* L, }5 K1 D; z0 R6 V6 n' P#include <asm/mach/arch.h>
7 O6 d/ x% O/ ]8 B3 y6 w! z  ~#include <mach/da8xx.h>4 X7 i/ z5 W0 Z: P3 A
#include <mach/mux.h>* z. x) e- Q# v( y; @( F$ U1 C! D' e! G

% |  I( ^4 K4 r#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ Z' |: w/ V$ q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 d' u/ o: R7 u7 \8 `" w; ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# t7 Q) j4 D7 q6 q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 v" G: s! k( V9 v0 z" F0 J
3 F6 y4 h0 `+ J: ^" g* F. w
/* assign the tl som board LED-GPIOs*/
9 j5 ~; _3 P1 z" A! Z1 k  F) Z! O0 tstatic const short da850_evm_tl_user_led_pins[] = {
: j0 o+ D. a# `6 ?6 F: y/ A        /* These pins are definition at <mach/mux.h> file */
& N5 \# @& v% E. @- U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" p( i2 a8 F7 ^$ x! ?6 d8 v        -14 Z! Q4 _' p! J9 ^4 q
};4 A( d1 {, d5 m1 w
1 Z  Q. p% u- B: B3 }' c
static struct gpio_led da850_evm_tl_leds[] = {6 f$ H" [+ O/ F5 x4 P
        {
) I' {' A- h3 R0 Y$ l& v                .active_low = 0,  t4 P, y7 Z* j
                .gpio = DA850_USER_LED0,/ N2 P+ a. y: D9 z4 d" {, y! l. p
                .name = "user_led0",
! J1 T( ^  T% p% c1 |                .default_trigger = "default-on",7 k, C8 Q  O& {; O+ e2 v
        },% i* i: l, }. F+ z  o  \
        {
5 v9 d, g! i. l; u                .active_low = 0,
1 `( F1 F' Y3 X' `' O, L                .gpio = DA850_USER_LED1,$ y, G  ~  l3 V
                .name = "user_led1",- s  ]- {0 G- [, r0 P  C. w4 C
                .default_trigger = "default-on",
+ P9 y3 z' x( ~& U0 X        },
1 C. _* Y" u* ~- O        {
5 M* b/ k/ x. Q- ]- H                .active_low = 0,
4 g. n' q4 E; A: O* ^  d2 b                .gpio = DA850_USER_LED2,4 W1 M* ?. p. Z, `) X) D
                .name = "user_led2",
; N" q- j+ ^& ]" G, q4 Q4 @                .default_trigger = "default-on",9 q) B# B6 R2 I: s% j! t
        },
* u3 v4 O1 V6 X2 C8 F        {7 y: Y5 |( g  ^6 ]5 w5 D
                .active_low = 0,& D6 i1 m9 z" U* s) R" e
                .gpio = DA850_USER_LED3,& Q9 ?! v  ^% l. Y
                .name = "user_led3",
- h2 ?; P4 ~( |( c# B; `# B                .default_trigger = "default-on",5 w. e9 w* k+ W, I& k' Z4 n* S$ ?
        },
! s4 |& T# N5 F6 z};0 T- Z! E/ f/ ^7 f( P* r

4 u" k5 {/ U: W+ Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 N9 S/ M9 S0 G( v/ {        .leds = da850_evm_tl_leds,
4 k& n( G4 d  ]* P6 f5 [4 Q, |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ v4 a% [. m' E5 r
};- G9 J* _$ h+ Y. B6 [
, a, L9 q3 k, p. E( U: v. E' C$ l0 k8 Q
static void led_dev_release(struct device *dev)9 X( Q2 A0 u8 J% u5 D( D# L
{
4 a1 ]& O8 h$ C5 R4 T9 S% k8 h};
- V; R$ |0 U% S6 s1 z8 ]* C; L# S8 X
static struct platform_device da850_evm_tl_leds_device = {
9 l( }- {, L, @9 L        .name                = "leds-gpio",
) Y- t5 i' J5 i1 S2 ^' \( Z2 O        .id                = 1,2 W; v2 B' W: t
        .dev = {
6 q$ X- R% w' L% J                .platform_data = &da850_evm_tl_leds_pdata,* s0 J# K, i, q6 ^1 Z9 C
                .release = led_dev_release,
6 e% [: B' \+ @$ r        }
, m0 i0 T+ F3 v% e4 _$ c};1 p  F: n  l2 V) V& A

' g/ N0 \, ?  T2 Y" h- |static int __init led_platform_init(void)
; B& G5 M- c; q' r{
& M% ]3 J  V$ J. _4 r        int ret;
+ k7 h3 z9 T% ?/ w  [: ~4 m#if 0* Q- X7 g2 ]1 o' m) G' F; p# u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 N4 t9 M3 G& c; p& D' T9 J3 q( U        if (ret)
( k9 \1 a- U6 g% L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 |7 `% {8 Q& z: b                                "%d\n", ret);
- f( b7 P: q# w: F#endif
7 h& p5 a4 a% T' _6 A8 W" k5 G        ret = platform_device_register(&da850_evm_tl_leds_device);" {$ S3 ]1 v9 m/ Z7 L# t$ a
        if (ret)" Q  `" I$ n0 S) C6 y
                pr_warning("Could not register som GPIO expander LEDS");% A* L7 r. y$ [% ^2 G
        else
6 ~# h& N5 z4 Y, K- X7 u. V                printk(KERN_INFO "LED register sucessful!\n");9 R/ T+ Y/ y9 s( P4 `) {8 W) }3 c

7 _- A/ A( N+ a- {7 v        return ret;6 X5 L6 f* ]- m  k
}. L" o$ ~1 o- ^! Z/ ?' f
$ I2 r5 y# V; p, z
static void __exit led_platform_exit(void)
, I- f; o0 C5 X2 u. B3 ]+ \6 J$ y{, p2 ?7 r: ]& }+ C1 W
        platform_device_unregister(&da850_evm_tl_leds_device);
" w0 ]- b' ^7 d) v
0 i9 f4 r  m0 o4 N        printk(KERN_INFO "LED unregister!\n");
5 _, G3 K4 Y/ I2 C$ r6 L3 r5 @$ \}7 |& a* p( A$ Z1 {4 w: C

* v& j" ~7 @! s6 f. P' m. umodule_init(led_platform_init);2 z9 A) v0 O4 D9 K4 M1 _
module_exit(led_platform_exit);% H% O0 W/ P: G) o: b  `

9 I. O' E$ ]% W' F2 v+ fMODULE_DESCRIPTION("Led platform driver");9 H' B! K& O7 }* {) \- m7 i  V
MODULE_AUTHOR("Tronlong");9 Z/ e9 C8 D) C1 V+ }
MODULE_LICENSE("GPL");
' w5 @4 V0 q6 j
4 b) V4 x* w0 ^. q% K2 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 05:23 , Processed in 0.071598 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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