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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, x* l6 k  h  e* B
#include <linux/init.h>
+ s' ]: e% @+ C0 }+ B#include <linux/module.h>
4 o2 h6 O6 }, m8 V  O#include <linux/kernel.h>: l& v/ ]- X8 d6 u; W- p
#include <linux/types.h>
4 B4 [9 C9 B$ r#include <linux/gpio.h>6 L0 ~5 j1 g2 W  x7 }0 O3 e
#include <linux/leds.h>+ C# x6 z0 X9 `) L# X+ O
#include <linux/platform_device.h>
0 p3 `" g3 @1 w' r- r% ~* G! |5 I5 L+ }* X7 _7 t
#include <asm/mach-types.h>+ |* o7 @8 F; L
#include <asm/mach/arch.h>
+ w2 n: ~# Z. R8 D0 k* i. S#include <mach/da8xx.h>
1 u2 o+ ]$ T! B: ^#include <mach/mux.h>
- p0 ]' p0 ~1 F& X' x+ M: i" M6 \7 M8 B8 |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) A1 P' X  @4 N( ~' T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) `% E6 y" T! O3 y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" n" E3 O! c& o! a% a3 l( ]' s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 A' Y$ H% R2 t9 n2 i' E5 y1 g9 o2 p2 C1 c6 {; q0 q* v
/* assign the tl som board LED-GPIOs*/- w' I1 v& O; W9 @. h
static const short da850_evm_tl_user_led_pins[] = {/ l7 ^6 h) F& m& j9 I
        /* These pins are definition at <mach/mux.h> file */+ k: C( q5 g! b. O9 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ^, y* s9 `8 U5 M4 E; ~) V) [        -1* D& Z1 f. }& p3 W
};
3 K7 r1 B( b1 R0 g- Q6 {9 J( I1 u: J4 @6 |/ e. @8 X
static struct gpio_led da850_evm_tl_leds[] = {9 J( [( d* [( O9 ~6 G. O: @
        {- O7 U$ H) ]9 _& ~
                .active_low = 0,, ~9 F, G3 C" M& s" j- R. @" b
                .gpio = DA850_USER_LED0,9 D+ X6 L# N0 K$ s1 U: M: i
                .name = "user_led0",
) _* P- t0 Y' R8 E. E) p+ G                .default_trigger = "default-on",2 e& j5 Y- n5 Q2 }. o
        },% m" o  m+ ^# ~$ a6 U8 q; a
        {
( v* X0 ?: Y8 @0 r5 `- O# s                .active_low = 0,; ?9 H. ]. D6 f
                .gpio = DA850_USER_LED1,
, U7 L( v$ o* K- O' |, C                .name = "user_led1",
6 o9 T" ]6 K) g9 ]                .default_trigger = "default-on",- k0 H- P8 o% T  `  I5 Q
        },( H0 e" b% C0 g; J# f
        {
& P; \, d3 e  d. S$ U                .active_low = 0,+ [6 n( R. n6 q3 T9 t
                .gpio = DA850_USER_LED2,4 f- I: c; Q& ]4 O" x/ V4 V) ]- k' X
                .name = "user_led2",
( M! Z9 Y( M) n& B' }0 ^5 B% l                .default_trigger = "default-on",9 u! C2 l+ j# f/ O( W
        },5 v1 }! L+ h  A* M! C; g
        {
  C2 h* v! m* ]  O! d                .active_low = 0,
+ Q  {9 X' o. w( U5 i- W                .gpio = DA850_USER_LED3,
0 l/ T. ]0 g0 j6 i                .name = "user_led3",
+ N; K( f) Y9 g4 v                .default_trigger = "default-on",
! N/ p! K( V* l5 o0 Z9 {3 \        },- d2 X+ F! @/ f/ k9 f; n. [  O& {
};
' o0 Y2 A, n$ ^& f
- q5 B, \, g5 {3 O; `! Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 ^6 h: l" [5 R& R/ ~% `
        .leds = da850_evm_tl_leds,
1 Q; o+ T; p9 V) K1 W        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 o( ]0 k% m! [* @$ v( L8 R! I
};
7 |% _! N; k% l* P
% i9 P2 M' W1 b+ e% p3 astatic void led_dev_release(struct device *dev)
, h" ^2 O7 S9 \4 ]* e{
& |' i% g+ w; Y};
* y3 G; ~4 f7 A* K$ B% v
! K' Q% Q; L: m  \+ @static struct platform_device da850_evm_tl_leds_device = {, k* g; f5 _( N( s  a
        .name                = "leds-gpio",
  C: k, e* B" B* W        .id                = 1,. k) q2 E2 s0 K- b% Q
        .dev = {2 i9 a' k. S( Y" P, D4 J
                .platform_data = &da850_evm_tl_leds_pdata,% K6 t& W! z( H( e9 s) s4 ~$ n- E
                .release = led_dev_release,) t) i+ Q* ^- J8 L6 l7 }
        }  k& b5 y# ]9 W( ]# ?
};+ N( K8 M1 @' A2 |+ N- _

- w, ]0 }0 i& H: d! f9 z, q( D6 i& dstatic int __init led_platform_init(void)
- K% j* k" \( n* j* n3 g) m1 s{
! m0 c( j5 \: ?- f+ ?* I2 r: n0 `( h        int ret;4 S& e% n  L8 N1 N0 T
#if 0
: w, g2 \/ _% W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- x4 g' q* Q4 w+ v" g' u" J8 ?
        if (ret)
9 |- g$ F3 W) V' C/ y5 `% T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 [  c) t3 b1 S- W
                                "%d\n", ret);- D- d- C7 r3 h  F- s8 J+ X
#endif( T- z1 N. V, H9 Y& v
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 j8 k  O/ p: H8 u# |        if (ret)
' p6 ^, n/ P& b. \" c                pr_warning("Could not register som GPIO expander LEDS");& ?& ]+ F: V- X) l2 F: m4 Q) l5 Z
        else
# ?$ O6 Z  \, B/ I* X: v                printk(KERN_INFO "LED register sucessful!\n");
. S3 F0 n  O1 T- S  t1 [$ G$ t: M8 Z" L  ^
        return ret;* _9 `6 D( N* i& I) B+ a
}* `5 _0 `$ i) [  X

1 l2 I' g$ _- K$ t' ]static void __exit led_platform_exit(void)+ y! J. ]/ o+ t, a
{
# M2 I- G9 I7 t        platform_device_unregister(&da850_evm_tl_leds_device);
& y; K& O- P- u6 q
! d( Q4 L7 P+ p6 e9 n, h+ C        printk(KERN_INFO "LED unregister!\n");
5 S5 |$ W& {6 m}
. U  B% u+ g9 v! O# Y+ A! }5 A0 w# Z5 M+ T8 ?1 T9 o
module_init(led_platform_init);& l7 R7 Z$ }5 L) ]: P, ^$ f% K( g
module_exit(led_platform_exit);
  D7 ^8 K8 A$ G1 t& j: Q
% V5 H; u% s0 B% LMODULE_DESCRIPTION("Led platform driver");* R& l: C" G* s. ?5 ]& c! N
MODULE_AUTHOR("Tronlong");
& t* q1 C% i; F  a$ b. z6 ZMODULE_LICENSE("GPL");
4 W: p& }& U/ Z- l. V
, i4 l7 Y8 `( _  p2 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 08:37 , Processed in 0.037434 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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