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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% b7 |$ J" T2 b! K7 a8 T#include <linux/init.h>8 J  g+ H, h  r2 m! L' T
#include <linux/module.h>4 D6 ]% l* @  w  b( y8 o
#include <linux/kernel.h>/ I/ x0 T+ a2 g( q5 L. N0 E2 H
#include <linux/types.h>
: W, ]6 C% w6 E( [6 q#include <linux/gpio.h>: @/ ?% W2 ]: |$ i$ D
#include <linux/leds.h>
; S) T* x/ y& x& u7 H0 I#include <linux/platform_device.h>3 p) G& r4 O/ N4 R: j
! H& |1 ?$ b1 V4 |
#include <asm/mach-types.h>
, u) A2 k  \. r#include <asm/mach/arch.h>5 j5 [" X. \# s7 Y
#include <mach/da8xx.h>, Z3 p* \, ]5 t1 R
#include <mach/mux.h>
2 B$ M# o. q( s3 I/ [8 [4 e% y3 Y4 N  I# B. Z1 G' Z( o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' C$ O8 f7 u' {# ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ _0 P( i! H' u7 R; t3 @$ H+ w: S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 J! C( c6 q6 ?$ @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) L4 Z5 l! e$ u8 o) s. l2 ^' Q3 K% G
/* assign the tl som board LED-GPIOs*/
6 I6 W( x8 s9 g  Q' r5 Kstatic const short da850_evm_tl_user_led_pins[] = {! p/ v7 D5 I# d! V. Z
        /* These pins are definition at <mach/mux.h> file */: k! B* N! h! T' V; J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 F. G- P: @- R/ p
        -1
5 b4 n2 m  h/ y' ^2 w};, p. V' p$ u: X* C0 {# Z: {

9 p5 L' M* M8 A" Lstatic struct gpio_led da850_evm_tl_leds[] = {' p, n5 o2 Q9 B* O$ ?% a& T
        {
: I0 w8 n+ U8 r: K) [) c1 j                .active_low = 0,& R0 U) Y. H; v
                .gpio = DA850_USER_LED0,- ?. V/ H$ |9 c" Q5 }" i
                .name = "user_led0",
5 m6 K" y- {) y' C, I  j  u                .default_trigger = "default-on",
* A2 u: R5 M+ ~( r        },
, j2 d# m5 q. c        {
6 E" o/ b) [9 ?; ?# T0 t0 [                .active_low = 0,
! o# ?7 P" b2 p9 a# q& K                .gpio = DA850_USER_LED1,
) r+ ]3 X* ]  U, `9 D' a' }                .name = "user_led1",2 c$ @+ R: C" q5 S* p: F: X
                .default_trigger = "default-on",
! ^$ K/ a, Q, c9 g1 T  i  z; b" O        },
9 K0 x) A/ d! A: q6 X3 k5 ~        {0 e  f% r: q) ~/ K: K. ]
                .active_low = 0,; X0 e1 s9 f% h, H2 m
                .gpio = DA850_USER_LED2,& f  z( l6 W0 k1 R
                .name = "user_led2",
, ^, A: o* t5 k- V6 ?2 E' A* I2 L                .default_trigger = "default-on",7 l) P* K- p: K( Z/ W; t) t' m
        },$ d; O9 |9 b9 V$ K$ j5 i# k
        {% r, j/ M7 Z- q  W5 V
                .active_low = 0,' o5 ?$ q! R7 ^( s
                .gpio = DA850_USER_LED3,3 D$ [/ z: P( p) w/ V. W$ A
                .name = "user_led3",
6 w: Z% c3 ^5 e7 t0 t8 ?                .default_trigger = "default-on",
$ ?2 n+ a/ j! F/ R! q        },
' u& j5 v4 V6 [2 M* ]};
: G+ V! m$ ?" n4 S4 a- x% x. V0 z7 o; h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 j; v+ S5 [$ f# r
        .leds = da850_evm_tl_leds,
! h/ g7 E- i3 U7 K+ f2 N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( }* S" c0 j7 e. u1 K; _: G
};
$ ]) Z6 X9 ?% U6 ?6 Z4 J/ Z& T! s% z6 L& O
static void led_dev_release(struct device *dev)- X  i" V; @8 ~- U! v* C
{" Z1 b, B. m' m! w
};
& M9 P( W" C) a; m  f
' q+ i0 h+ z9 lstatic struct platform_device da850_evm_tl_leds_device = {) N/ p+ k- ]& z; l; b$ T1 \
        .name                = "leds-gpio",
( a9 D. c; L0 M  w        .id                = 1,+ ~, x3 V2 B. @  f6 H
        .dev = {6 m$ e  z' u# k
                .platform_data = &da850_evm_tl_leds_pdata," j* E& P7 l$ U, |
                .release = led_dev_release,
0 w7 D7 j1 y) D, W0 j2 ]* b        }
# e: p" y2 D9 b; J" k};
, s3 ~. B% f* m4 F/ B0 P" j: F- f7 i( G( q7 `
static int __init led_platform_init(void)
0 E2 p! a2 H0 Z  H; P- Y) I$ w{% I$ w1 }0 D4 g# ~$ F- k* w$ N8 H
        int ret;/ T8 }4 Q! f8 Z" C5 p9 l
#if 0  Q! F$ A$ M! y4 W8 K& H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, A8 Y0 J8 f" F6 v1 T9 b        if (ret)* `1 k% y; E" _( e7 ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) j+ t0 Y& C) X1 W                                "%d\n", ret);3 \' ~4 q1 Y3 Q$ Z
#endif
, [  [4 o4 @4 S" {2 m        ret = platform_device_register(&da850_evm_tl_leds_device);( U% H+ C& ]3 f1 l" O; {2 B
        if (ret)
: a: @! \& m7 ]6 A                pr_warning("Could not register som GPIO expander LEDS");
2 k3 R) g* @  k3 x- r8 s  f7 K9 @6 U        else# F' H+ E  I9 x5 R
                printk(KERN_INFO "LED register sucessful!\n");2 ^- R. _) m  n" A' ~

' H+ v/ H# F. ?  ?, _        return ret;
* e8 w1 l+ g0 R* r  @}
2 k% D. l8 M* k6 h- _
6 x6 ~9 g+ d2 qstatic void __exit led_platform_exit(void)8 J; _, i+ }6 ^
{
- H7 [. {* d7 _7 L  `  K        platform_device_unregister(&da850_evm_tl_leds_device);
& N/ u) g( C- k) w8 b9 [# }7 O5 k' k
        printk(KERN_INFO "LED unregister!\n");
: ^9 ]* A8 R, C4 E- W0 i! r4 Q}, D- ~3 n( V) c$ k/ q3 }5 ~
/ F6 c6 [" V  y! t% Y
module_init(led_platform_init);- B2 \/ V! m4 r$ L
module_exit(led_platform_exit);; }. X% w2 @* M3 {, R2 [: s
$ l  v% U# C. o! |( W4 k# P- ^
MODULE_DESCRIPTION("Led platform driver");
3 k& R% [5 x% G3 \/ K2 PMODULE_AUTHOR("Tronlong");
9 {" E' W- A' ]: s; g7 KMODULE_LICENSE("GPL");
; G8 U% J, {9 \  j. b* v( ?# M9 O+ E7 o" ~: t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-28 20:57 , Processed in 0.039957 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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