程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ o9 k& ~8 G, }4 E# \) Q4 O
#include <linux/init.h>
' n+ \$ @" L' p2 }: g; }; w1 s6 Y#include <linux/module.h>: r# O7 q/ b7 u! C6 g; f& Q
#include <linux/kernel.h>) o. d1 h! h& [5 |9 _0 v
#include <linux/types.h>( m9 l2 S; f5 h# q. h( j2 N) K8 W2 s
#include <linux/gpio.h>1 J( V0 R! j1 x( l, P
#include <linux/leds.h>
: e4 }% H  ]( V$ R( W#include <linux/platform_device.h>
) j$ r, S, z3 X1 |1 b/ A$ W6 ?+ Q# G, e
#include <asm/mach-types.h>- l4 }- A8 @3 [
#include <asm/mach/arch.h>
& ]! L4 P0 ~+ m  l9 c#include <mach/da8xx.h>
6 X8 w7 @0 G0 {- P& ]; _#include <mach/mux.h>
+ E, \( \. J4 I' S1 D/ Q- ^
. t) ~+ v! Q) \6 m5 q% _, B) [5 L#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ w. ?, [3 L( m% n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 e% X8 q! T4 O% V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 C2 u- l* {& z8 t" s4 q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 `0 f4 {5 Z" ~1 D2 \3 ~" G* j$ R) Q" [9 [' I; L5 c3 t
/* assign the tl som board LED-GPIOs*/" |' m9 ?# a* i# g" P& l
static const short da850_evm_tl_user_led_pins[] = {
" U* B: p% H9 K        /* These pins are definition at <mach/mux.h> file */
3 }  Y" b7 ]# w( j1 X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& Z6 G; U: y5 E/ E
        -19 q/ k5 j0 C* w
};
. ]0 X  m+ C; U% @: b2 a8 c( s" p9 L8 i  {8 W; q
static struct gpio_led da850_evm_tl_leds[] = {1 I1 k& x8 I% u$ \* D4 Y* b* m- h8 M
        {5 n; w; b4 N$ x8 l0 q
                .active_low = 0,- g! F4 Z& M1 C2 N) @( U) C  n
                .gpio = DA850_USER_LED0,
2 [2 |: r# ^. m' K3 W                .name = "user_led0",+ f; F. V6 i: C, A
                .default_trigger = "default-on",2 q9 A/ A$ l) |+ J
        },( @$ X; p: d% Y9 ~6 n3 b
        {
8 l4 i6 C1 b5 D' z; ]                .active_low = 0,
8 u2 e& |: t9 q5 j; e, V                .gpio = DA850_USER_LED1,/ z* R; O  T, {
                .name = "user_led1",/ l' F& ]$ H6 P8 g5 _; Z
                .default_trigger = "default-on",/ O" i% E  J8 h! F, P2 t& _$ L7 e
        },' L: `' k# g' \3 D4 x! M
        {
8 k0 a4 v2 X7 ^# b- a7 {( [$ n                .active_low = 0,. U, H& C. ~3 A5 }/ n, |9 g
                .gpio = DA850_USER_LED2,0 E4 z) B2 F7 Y$ X
                .name = "user_led2",( F( E- U! Z2 N) a& j0 R
                .default_trigger = "default-on",' Y2 z. u2 H, u, a" T' H
        },) J- G- i1 A" h! m5 J* ~7 X
        {
2 j- X* p# W7 N5 q                .active_low = 0,' X: D! T0 A+ a: ~  h
                .gpio = DA850_USER_LED3,' N  N3 U: i4 v7 R% D0 A! G
                .name = "user_led3",
1 y& d/ R+ ]) K                .default_trigger = "default-on",; q) T: m" Z3 q7 w
        },0 f, t: g! q! k" l6 l0 T2 H8 n( Y
};! e/ E" T3 m/ ?0 `" I4 C8 n3 n( I4 c

2 z$ J6 H7 n& b* g) Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 k2 X4 R8 M  n( L: G) t        .leds = da850_evm_tl_leds,
; E" ^4 X4 O4 J# e6 G        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 H& W% F6 F! d; u9 d$ S6 [9 G};" I1 v3 X( O2 s) p' ]+ m

4 M; G! m" F- n+ ^9 Ostatic void led_dev_release(struct device *dev)
8 ?% b$ y$ ^; G{; s8 v9 S" p% R( b1 a3 f
};: j# X/ O, s3 m' w* G8 g6 j

1 J$ H% D0 c7 c! Q/ ^1 zstatic struct platform_device da850_evm_tl_leds_device = {; t! y# S) l! F4 p- W
        .name                = "leds-gpio",
" \; A, F3 [, p) W5 Q        .id                = 1,
" j: S; |4 S6 V2 T) B        .dev = {
9 \# S* r$ L; N1 [. d/ l# q7 h                .platform_data = &da850_evm_tl_leds_pdata,
9 ?# C! ]8 ]- L1 u                .release = led_dev_release,
' \- b+ N* Q* @" o( Y# [' K        }8 l# T1 f9 S' ]4 N1 s
};- F, A* I- J; M% _( Q3 f# y

" t% ]3 ~9 A) z1 n! Pstatic int __init led_platform_init(void)- T2 v+ ]' \$ U8 L0 v0 ^0 F, ?! @
{
6 \$ c" e( z1 T3 \        int ret;
+ m- t- H5 _  e" U4 P3 S" a4 |" n#if 0
6 S( i# K# G# L" o3 X  k" L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 U' q' c. _/ x0 O$ m  H        if (ret)
5 @+ U6 L' l: M' ]- I% o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! N, d4 G' l$ B" M4 U* F0 o' q                                "%d\n", ret);
% j1 v8 l: }( p$ v- M( Q#endif
2 }! x, u2 b; S: k        ret = platform_device_register(&da850_evm_tl_leds_device);
6 ?  E3 w: q- I+ M. [        if (ret)" W( L  ?6 z# j
                pr_warning("Could not register som GPIO expander LEDS");
. B: A9 K$ C* C5 {( {: a- O) o        else
# H+ V4 q' m( d* r                printk(KERN_INFO "LED register sucessful!\n");
4 W$ D- g8 H" K/ {' ]+ K) E7 G9 n) ], x1 r6 g; T: f/ l* f
        return ret;' l2 R/ P: Z9 _# Y% d7 P9 h
}# C+ m8 g' `$ r

9 N) G. p& J" j2 j, @- `4 V0 @" B. V+ Qstatic void __exit led_platform_exit(void)1 M* {6 B3 w/ T% `5 e
{2 m9 R" W- T. e& L# l
        platform_device_unregister(&da850_evm_tl_leds_device);
9 D" ]# {& i0 K9 F0 M
/ F" u# i9 I2 L, c9 P+ k3 y. q        printk(KERN_INFO "LED unregister!\n");0 b5 n3 `4 g5 t  k
}- P, E; p: f! ^0 P, p
, ]% d$ i4 L) g/ T# W4 f8 A
module_init(led_platform_init);
) |5 W; A: c5 p/ n$ }4 ]module_exit(led_platform_exit);
) b8 [! Q2 e$ f- z, u( }2 L! e1 c7 m7 O( H0 g8 h) ?: x. U0 m9 i
MODULE_DESCRIPTION("Led platform driver");9 N$ O- L& o% h& Y/ a' w& v5 B: w" @
MODULE_AUTHOR("Tronlong");! B: j( T& Y# M+ i
MODULE_LICENSE("GPL");
7 \9 v: l7 H& C8 E* m1 u$ R3 b% J- b7 l: U& s( a5 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 12:51 , Processed in 0.037005 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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