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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ }! c2 H; Z" g- R" j2 P/ o5 v1 ~
#include <linux/init.h>7 J" ^4 J# |' F0 r# o
#include <linux/module.h>3 q2 i: R/ `- D5 e9 n) t( v
#include <linux/kernel.h>
8 B+ n% s& d5 P' A; P1 \! x#include <linux/types.h>
( j0 o5 M7 n; c# b: ~' L; s#include <linux/gpio.h>" D& h0 f" b$ X; B
#include <linux/leds.h>
; v# W! V7 ]" i' n8 ]#include <linux/platform_device.h>* p, L, V( v+ V: i* k
0 K2 z  C" i3 `. `# v" o
#include <asm/mach-types.h>
& ~, S  H. T' C) }! M#include <asm/mach/arch.h>
; u2 a# A6 e8 v/ l4 `! H& C#include <mach/da8xx.h>* X& z, f/ n5 d) \# A
#include <mach/mux.h>4 W" f0 i* `# m7 i

4 Z3 x3 [: j( Y- \$ F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 ?# [  ^: G0 D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( w; u# x/ l& {9 L' s' W* z  |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! q* o# a* E; E) I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) T6 O4 X3 h4 E, h* Z& m8 h
8 j- ^% S( A6 _) X, n$ J. g- N0 L, A
/* assign the tl som board LED-GPIOs*/
6 }2 \; ]% D$ N" s4 Dstatic const short da850_evm_tl_user_led_pins[] = {2 A- B# c0 J0 n7 L* Z; J
        /* These pins are definition at <mach/mux.h> file */: R2 Q  l: s: N. U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; t& A" N/ [! P" g
        -12 S' Y3 }  P/ Q- F- w4 |
};
* q! G' U5 k* i2 C& u% N8 `1 A
* P4 I+ _" a6 ^. k" e+ n3 Tstatic struct gpio_led da850_evm_tl_leds[] = {6 N8 Z: C: U) V4 Q4 F' ^2 |% c. m
        {
, {" |$ A* L) d( E4 l. H8 [& E                .active_low = 0,
" d1 ~2 f8 m* z2 H                .gpio = DA850_USER_LED0,
- o2 d, _7 b7 o                .name = "user_led0",. h+ g: @$ K2 f
                .default_trigger = "default-on",
, O6 Y  z% o  q        },
9 F. J5 W' Z: v/ E, F        {
" |1 F: K* g  K8 n* {7 P1 d& l4 }                .active_low = 0,* N" |, v8 u4 X
                .gpio = DA850_USER_LED1,1 S9 O5 v( U! ^0 m- L- n' }  L9 c
                .name = "user_led1",4 _/ N, q# x: Q" Y; `% Y4 a
                .default_trigger = "default-on",3 j" {- l$ m; Q
        },
. F6 H6 i8 ?* H- c% G/ V. G# @        {
! S0 o  i) U. ]. l6 o! a/ z- {                .active_low = 0,# Y6 P3 a$ T' i5 c' ~" k
                .gpio = DA850_USER_LED2,7 H% W/ G' x& W) m
                .name = "user_led2",9 w( e6 W# Y+ H0 Y
                .default_trigger = "default-on",3 n; ?  g. K5 C$ J3 n/ R5 c* [
        },! z4 c( ?" |$ C" j/ L
        {
0 d: }  z7 e2 `/ m                .active_low = 0,
1 o$ w& [8 r1 C5 v6 m                .gpio = DA850_USER_LED3,
8 t. E( |  L. x; z0 R                .name = "user_led3",
: a- D& b. m  v! _0 N# r# z                .default_trigger = "default-on",
8 h( e0 S5 F$ A+ t, _8 t        },3 N* a! v/ \2 N2 k8 J+ ?9 L7 M3 k+ {
};* d5 q; f9 z/ Z

. ^& {* j; u- W( @1 Sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# h: D1 W1 U4 O+ [) Q6 `* I
        .leds = da850_evm_tl_leds,4 g' P% o% K8 ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! _' R# s! }+ @};( c( d1 }2 \/ [

* J7 k+ }6 I( H  S4 Tstatic void led_dev_release(struct device *dev)$ @8 Y( j- {& [& i  `
{# E, c' l& c  {' b( O& X
};
9 g: n7 v( b+ V& g6 p8 j. [9 j) [/ p. W5 O8 Z' W; E/ H
static struct platform_device da850_evm_tl_leds_device = {
) h8 a) X, o( n4 p# l" Q        .name                = "leds-gpio",' c7 ]6 w; S: ?% q# O
        .id                = 1,7 \7 ^4 r% M7 L2 {' ^9 Z
        .dev = {
2 V! Y5 L6 a, B" B# ^                .platform_data = &da850_evm_tl_leds_pdata,
; N$ `' B$ F0 I* H& P) h& j& c5 Q: o                .release = led_dev_release,; o& x0 T$ a# R% T) G+ Q. J$ l
        }
3 p* l/ I* B5 ~};2 A# X4 x+ Z" ^, g0 T7 ]6 U) D
, G: L. ]; V  E0 z
static int __init led_platform_init(void)- f, |& y6 o' z# E+ p# ^1 U4 M
{
$ S5 z9 _2 ~( v0 n2 d; z        int ret;
: v+ D6 i& G1 \9 [#if 08 P0 a" p  d8 Q* ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  v$ _, q1 R; q4 v/ z. r        if (ret)( q1 K4 M: A( m2 J' V- V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 M2 p. q- E/ ^                                "%d\n", ret);
; Y% i0 D+ n/ C, z4 v4 m" G6 \# R#endif
* v; @  j- N5 p: z7 p+ B        ret = platform_device_register(&da850_evm_tl_leds_device);: u; m. H. j; z/ |
        if (ret)
' }  t. v$ N) q' b- z; k7 S7 j" l                pr_warning("Could not register som GPIO expander LEDS");
+ t; m, p" X& h        else& h. y, I2 V. @, o; E/ W
                printk(KERN_INFO "LED register sucessful!\n");; _3 U' o: ^! z& V8 m
$ V0 q/ y5 c7 k0 T  `& y7 Y
        return ret;: S0 f* y& x% l2 p
}  u/ M6 Y2 h' `; P
8 ]( J$ ?& ]3 o8 X+ J
static void __exit led_platform_exit(void)
: Q0 n- A1 Q: b- O( g( h# K4 E) z{  ]7 M) [0 ^5 b3 S4 ^7 ^
        platform_device_unregister(&da850_evm_tl_leds_device);* l# V( C# R6 @4 q
( {8 H$ g% }0 }7 O. F: \
        printk(KERN_INFO "LED unregister!\n");
, Z: [; b# j/ _& Q}/ D5 O  ]  C1 ]% m% h
2 H' v; N+ e* A7 h6 y6 S% p! g
module_init(led_platform_init);
2 Y% ]& q; C& h( G0 r+ n( Xmodule_exit(led_platform_exit);6 ?4 t+ f; E+ ?1 V! {9 P; U' W
5 v9 M! Z* o& l9 o
MODULE_DESCRIPTION("Led platform driver");) ^0 p  W$ ^. V- _- ?& Z
MODULE_AUTHOR("Tronlong");
: A+ Q, `/ _0 S8 e$ d4 {MODULE_LICENSE("GPL");8 ^! G8 I: [% }& Z3 P

. a) z% Q% C% Z: v7 u" l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 08:06 , Processed in 0.040239 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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