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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. O4 M* C* [7 D0 ?" U+ e# V#include <linux/init.h>
0 R, h; k0 J, V#include <linux/module.h>
& n: m) T$ O$ z0 j# J4 P, e#include <linux/kernel.h>
1 X) c0 q; {& u#include <linux/types.h>4 m$ ^5 d: Y' X' Y. Z2 _
#include <linux/gpio.h>1 Z2 w2 f0 j% D
#include <linux/leds.h>+ ]$ C2 d- a5 k) E5 `! [
#include <linux/platform_device.h>
& {& ?" O8 z* E
- L5 w$ N* W; ?4 D- D#include <asm/mach-types.h>
! ^$ X2 {8 m% ~( U! L8 m#include <asm/mach/arch.h>2 w. s* f3 s. C
#include <mach/da8xx.h>
/ W  V: D& A) D#include <mach/mux.h>
2 w. j$ m- M7 U5 O3 T3 }
- _0 {3 [0 a) a; L. S4 q7 k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 i1 A& X  s3 q# |( j& U" _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 T; c8 j4 k0 ?1 @) K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ X( k; V2 }- ^+ j5 P, A  w; L" X3 p" q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; s+ @6 G  M% u' L3 H3 h
" G# K. p+ S" l( l/* assign the tl som board LED-GPIOs*/9 D+ g, S9 k* E# ~
static const short da850_evm_tl_user_led_pins[] = {# H$ J9 p% A" y% h6 o& \' x2 |7 D/ L
        /* These pins are definition at <mach/mux.h> file */2 ^$ [0 ^3 K' `$ |% O) e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- l/ y$ ^) X+ Q8 Y# u5 S
        -1: W3 H) @( v8 q
};
8 d( K  A/ ~, _' w) v
; P0 \8 ]6 Z# ]9 Q1 W' v  ~static struct gpio_led da850_evm_tl_leds[] = {
" v7 q; A" f, q" o- ^        {: [% a$ \9 M7 P! G/ b9 q+ D/ _
                .active_low = 0,' o5 Y. F5 ?0 @7 a* C
                .gpio = DA850_USER_LED0,: x' ^; _1 }$ H
                .name = "user_led0",: `4 x" W5 G7 o0 ^
                .default_trigger = "default-on",7 _- G1 p. e% x1 l6 M' W0 @7 v
        },
" m& \" Y; b  I5 F: w5 l; n8 P& f        {& h4 g1 a* k3 a3 g
                .active_low = 0,
0 Y) g3 v+ l9 E1 H                .gpio = DA850_USER_LED1,2 a; U9 ~1 k, M* J+ |1 i
                .name = "user_led1",
$ a+ X% R; \3 O. k( g) U                .default_trigger = "default-on",
, m  C. i! w, C! P+ S3 u( U        },
( m/ c, @0 p% I- @/ r: L        {
1 e; W. \- q1 R% K( f( U5 N                .active_low = 0,) r6 n; T; R9 W! l' i6 P0 f: X
                .gpio = DA850_USER_LED2,
& O, V5 ?- x$ ^# y  H                .name = "user_led2",( k( h: `0 {' T; P# Y
                .default_trigger = "default-on",' [' [3 \$ }2 ]0 H
        },
; z- d/ G) v6 {# `* y2 R5 E! E        {5 a6 e4 O( s/ |' p" F9 j' x: V
                .active_low = 0,2 y: v* d3 }! l3 ^$ [5 w
                .gpio = DA850_USER_LED3,( U; i* J8 H, `1 G; _- Z; H
                .name = "user_led3",
7 N( I% K' B# k' i4 ?- D. ^# Z# M                .default_trigger = "default-on",# O3 Q! v3 _. o- _3 c! W) Q
        },( @3 Z, q. z" m
};0 J; e  W" y, w* q& G! Q
! z/ l, u& `" L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 @+ Q# B5 y* `5 r; J4 r        .leds = da850_evm_tl_leds,
/ U! J8 q8 b5 t! r9 C( w. K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 F: K& G/ I4 }8 d};
2 N/ F5 D& P$ D- e9 V! E/ I+ |& Z1 Q" Z
static void led_dev_release(struct device *dev)( @6 s2 x8 E7 u
{+ i3 n9 X' L6 O, R9 s7 A
};: _+ y2 v* c& r+ s

* B5 z6 a  [( \, @! _, ^. cstatic struct platform_device da850_evm_tl_leds_device = {
, f) ^' F& I1 a6 P) ~        .name                = "leds-gpio",7 h# |% T: z4 S: l
        .id                = 1,1 ^6 u5 ?$ v2 i2 H, h( Y
        .dev = {9 }' O2 y  s  Q1 X0 r: M
                .platform_data = &da850_evm_tl_leds_pdata,8 p' T% I/ h+ c2 d, D
                .release = led_dev_release,
9 T8 z8 E, ?  n' M3 _+ V        }
& ^: o: Q( N  H& }: Z" q8 h2 e0 d};/ k, o' [* T: |, m& D( I
* K- F/ a7 @% L# H6 W5 `
static int __init led_platform_init(void)1 |) V* ]6 n" Y5 E. y$ M
{
7 d1 ~$ Z9 t6 X9 Y0 ^& s        int ret;
' [( G9 M8 G9 A8 G. F#if 0, O( Y3 |2 A0 `' k. E# i- s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ J/ E5 y: B! V1 c        if (ret)
3 z5 f+ K; `5 R0 [6 o4 S- g3 [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! {/ d  x: J6 W( a! C: D. ?0 x0 v                                "%d\n", ret);
) b4 \- q7 F5 @6 d1 W5 }& Y% X#endif
  G; Z. @$ L# s/ _! v, S  m4 ~% z        ret = platform_device_register(&da850_evm_tl_leds_device);
# h6 I3 V, ]5 m' |/ u, q9 S        if (ret)  f, T" m2 g  W$ K( n) ]2 q
                pr_warning("Could not register som GPIO expander LEDS");
* S8 i. L1 Y( U" T        else# s& B0 \' F5 D7 e1 h
                printk(KERN_INFO "LED register sucessful!\n");
2 U$ S2 B% x+ y0 Y: G5 X' _0 h, ]$ [) G+ S4 O3 e
        return ret;" w& ^- h( x5 v8 P
}
2 T6 N4 W* X7 A; H
" Z& W! S0 B1 F6 h$ xstatic void __exit led_platform_exit(void)& j) d) \" u/ F
{
2 F# C0 [8 l1 r8 H; u2 |5 f+ F        platform_device_unregister(&da850_evm_tl_leds_device);
# @% P- v8 @# a, r- |. J) M, E& Q# e$ i, x. z% l
        printk(KERN_INFO "LED unregister!\n");
/ x0 k, ?; Y# G+ R6 L4 l}
& e* m4 L6 }0 ^& p4 S  [) z" M+ x, C/ _
module_init(led_platform_init);' [' G  }# w, z' j! h* [
module_exit(led_platform_exit);
. p3 B2 ^2 q! d1 H1 t$ r( X4 s. |* L$ ~
MODULE_DESCRIPTION("Led platform driver");, X0 o  d" R8 ~0 k, `0 F: m; K
MODULE_AUTHOR("Tronlong");
* y8 u2 i2 ?. ?( u: [' T' h$ oMODULE_LICENSE("GPL");/ q9 S1 \, V: _/ K; v
1 V0 R% p2 |, K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 16:42 , Processed in 0.039681 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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