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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。8 Z3 k  o6 |5 M1 n7 E" R
#include <linux/init.h>
( ]0 I4 N! r: I& A. _* ~! m#include <linux/module.h>
) f# Q6 G4 }! d& ]! ?% \& a. N7 Q7 S( L#include <linux/kernel.h>1 \3 M% X6 g$ w6 C
#include <linux/types.h>
. O4 k- ?$ w9 G* d  W% V1 b% T* H# V#include <linux/gpio.h>5 G, J3 c. z! c1 q: F
#include <linux/leds.h>( a: r+ X/ V8 y9 k' Q9 Y1 E
#include <linux/platform_device.h>
) k3 I" l/ D; h' u  g2 U7 v9 f1 Q
7 O3 {+ o$ a- ^9 G' H#include <asm/mach-types.h>7 l* q' h1 }0 l" i6 W! S
#include <asm/mach/arch.h>1 s' i1 ?: h) f7 ?" Q
#include <mach/da8xx.h>
: O- M; Z% }+ v6 f& ~#include <mach/mux.h>
$ J, N$ X2 J& t2 q9 g
2 W4 P! r% m! M% b1 g" S& B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) x/ G& a$ m. _; N% ?! b6 J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 m( a0 P* R$ r- G5 o, Z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 {4 Q% b0 p% \1 O2 v0 ~5 W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): d/ Q. _# Y8 z$ g3 t: ]8 I8 e
. R% O8 Q$ f6 `8 a" ~
/* assign the tl som board LED-GPIOs*/. o4 Z% o: c/ n5 C& y# g
static const short da850_evm_tl_user_led_pins[] = {( V9 K) y0 ~! N5 E" m
        /* These pins are definition at <mach/mux.h> file */3 y+ y2 w9 O- O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* [# s+ k4 O& s$ [( c% ]
        -16 H2 a6 |) w( z$ O3 ~
};3 i9 K. y8 a# q7 @7 E! q1 _$ n
& ]3 I* ]$ l+ E  o& {
static struct gpio_led da850_evm_tl_leds[] = {
. j: T( o4 d+ |* @( t        {0 k6 P1 e4 _$ L) e5 |
                .active_low = 0,
6 a7 _0 r8 ^& ]) J  k* N) q                .gpio = DA850_USER_LED0,6 x8 ^5 g: L) Q5 p- M9 _4 Q
                .name = "user_led0",( f" H& H. \# W0 K: B/ q( j* t- _
                .default_trigger = "default-on",: X* p9 F; G0 }5 {% p8 Y
        },
$ y, z+ G* v+ k/ N& r# @        {; `( G. p% a' I/ O  D& H4 B! _
                .active_low = 0,
, T' ^; R, x$ r, G, k1 Z                .gpio = DA850_USER_LED1,$ d3 O/ D7 ~; f. D* i2 x
                .name = "user_led1",5 i( d' r; E- [7 a$ Q
                .default_trigger = "default-on",
4 V, y! G1 U: n' @% ?3 |$ m        },
( k7 L5 y6 g" c; g% r3 c0 b' i        {
2 Z2 G- H2 ^3 t, {; c& H- g- I                .active_low = 0,4 m! R% c. u. j4 Q# i% C
                .gpio = DA850_USER_LED2,
4 y0 w1 N2 h7 d0 {' u: k' c. C                .name = "user_led2",- @6 K5 k7 d: F
                .default_trigger = "default-on",
9 j! L: j& M( z: A/ [        },
' I$ @+ |, y0 i2 z2 B+ ~        {4 x  d/ R3 S. T4 R& c
                .active_low = 0,
% K, e2 s; C+ L                .gpio = DA850_USER_LED3,
. _& d4 a- T  m" v6 M$ n                .name = "user_led3",
: d, Z% m+ j& S2 S                .default_trigger = "default-on",
: Y' a8 i0 c: R        },9 l5 \) z! l5 }5 D2 W: ~- s- B
};
) S1 g$ ~9 t5 r# u0 p9 D+ \9 z! C$ [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# Y  w1 T. r3 `9 P' p- f        .leds = da850_evm_tl_leds,
5 h! |2 H/ b" z3 n  r4 d7 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 [8 ~- R# r) R/ L$ o& n: o, ~5 |};
9 ?1 Q% Z/ a3 f$ R9 R( D( T! f9 b7 @& ?. q( R  d/ l1 A
static void led_dev_release(struct device *dev)
: y  t3 Q8 H) s1 \. l) b2 p{& a5 j! H9 j! l3 [
};
- F! U$ J3 I1 _) w( c* l/ m% T* z( }: ]
static struct platform_device da850_evm_tl_leds_device = {1 S; V4 Z0 c7 v& s: W5 F
        .name                = "leds-gpio",
) K4 v* Y; Z  \; I  B/ a' j        .id                = 1,
7 p6 H! [% K2 s0 P* ^( l8 N9 U        .dev = {* m% N! k! O4 m% z& P
                .platform_data = &da850_evm_tl_leds_pdata,
5 I; S/ ]6 w2 F4 C6 M                .release = led_dev_release,7 T; [& g. ^" d* p3 I
        }8 l3 p  B% X, [
};
/ I& y7 x% u; I
. ~0 w, X) H8 v2 w5 Pstatic int __init led_platform_init(void)
$ J$ }4 U- ~. p  j{
  t8 t" j5 `. |& w( v2 U( Q1 o+ P        int ret;
% D" G+ l- A9 b" G5 w2 q8 q8 l#if 0, C9 ~) P4 p5 K3 x5 z- G7 L( \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 ?) B, G. [5 Y7 s. Q! X# N
        if (ret)
2 K1 k0 f# q7 I% t% ^4 N) L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ y8 G  g4 n  ^3 F
                                "%d\n", ret);
2 ~7 ~# K- m- Y* X2 A2 V. S#endif  V2 H; {( Y6 ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 \7 S' M: P: m* U) W        if (ret)
  u/ k1 i$ c& I( D9 g8 ^, U  T/ N                pr_warning("Could not register som GPIO expander LEDS");& q/ `; Y' d) o5 g% X4 i1 e
        else
% N" F: h. S' v) G                printk(KERN_INFO "LED register sucessful!\n");
2 w5 e7 q% f5 u8 A& ]. C- J
4 }1 d8 a* D: N, l5 o% ^        return ret;
+ }5 G8 r5 c. Y* B5 U/ k}
+ ?" S6 O8 u! ^2 l. X0 V
$ R4 K) ~& B) {0 l# dstatic void __exit led_platform_exit(void)/ d$ F' N6 \% f4 O$ ^+ M
{
$ ~5 `  ?0 {7 M        platform_device_unregister(&da850_evm_tl_leds_device);6 H- R8 y! ?- d
) H6 e. s- ]' _; [
        printk(KERN_INFO "LED unregister!\n");
8 t4 x9 P; ^8 v  H, Y$ ?}, {$ s+ h4 q! D+ ~$ e
( m+ v7 y0 G% d
module_init(led_platform_init);. l  H& ^. q# R2 E9 r
module_exit(led_platform_exit);
' \3 a# F1 p* b+ X+ ~5 S4 f5 _
/ w- x2 _6 u' z; z( qMODULE_DESCRIPTION("Led platform driver");
! y9 g# d8 X9 N2 d0 M# WMODULE_AUTHOR("Tronlong");1 r. h4 e, y1 e' V7 J
MODULE_LICENSE("GPL");7 V% L4 ^+ _- i/ H' p: d5 u- G; `

. g1 l9 U6 g% p3 O+ M% A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-13 20:59 , Processed in 0.040451 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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