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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* c: r0 l2 p/ l* I; I: q
#include <linux/init.h>4 @! x: E7 d5 r
#include <linux/module.h>7 y" N( `* R! m% p: D5 b! D
#include <linux/kernel.h>
9 W6 d. c& c) u#include <linux/types.h>
7 E) j, c2 ^0 t7 }# s) k#include <linux/gpio.h>
- o" V& Z3 X+ T& b& S$ ?#include <linux/leds.h>3 J4 A* H) T& n% Z/ O  P- z/ {  C
#include <linux/platform_device.h>" n! d& Q& X* j( l( K" K7 a

0 ?7 U0 M6 a" q8 A$ S# O5 |#include <asm/mach-types.h># t, N9 j8 U3 k, }! d) W0 M$ e5 ~3 F
#include <asm/mach/arch.h>- ?9 e3 v" l0 k" l
#include <mach/da8xx.h>( f8 N# q# T/ {& R: _# T/ i) W' S
#include <mach/mux.h>) i# C  V% Z/ p% ~8 v

' t. W" q5 m/ w2 ]! S' }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 N. Z- a8 }+ Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 W6 W" u4 w8 ]* o. `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 i8 x) [3 M3 C) Y: G4 W% f) y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 i' R$ k) m1 d  n

' c$ f! N# {1 ^/ p/ B0 F8 @/* assign the tl som board LED-GPIOs*/
5 o, `6 }+ M1 @static const short da850_evm_tl_user_led_pins[] = {+ \, o! W7 F$ p2 G- p
        /* These pins are definition at <mach/mux.h> file */4 {# {% t$ w( I$ p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ f0 X  A6 k0 k) G! f+ J+ [8 ^6 I
        -1
6 {2 _' V3 L8 I8 s9 X, _};
; D, [2 }' {4 m
# S+ z$ C  [' @6 g. istatic struct gpio_led da850_evm_tl_leds[] = {
; x& o  a2 N8 k* ]8 [$ G        {
. \$ m3 G& V/ `% T. Y! E, Z, U; l                .active_low = 0,+ H1 c1 |( {5 R' x+ y4 B' C
                .gpio = DA850_USER_LED0,2 O8 X7 J: r" n- W6 w
                .name = "user_led0",
  W; ?" Y% ?& ~* Z' C, g2 Q& p0 ^                .default_trigger = "default-on",- n  q5 _4 e) |
        },
( R" Y- x! `! ?6 T1 @3 m# [        {1 r: i+ `  E' P& ?
                .active_low = 0,
# f( C6 [9 w7 W9 y, L                .gpio = DA850_USER_LED1,* \, O+ x0 }$ [1 w1 q
                .name = "user_led1",% J' }2 B# `% z/ n% @3 `
                .default_trigger = "default-on",
) y+ Z% v& J6 V' k: }1 j2 z        },* A% [+ x$ X" E( E
        {
' O$ s" O# G: S3 J2 b2 H& B                .active_low = 0,, T3 Q4 [8 R6 ]7 b+ v
                .gpio = DA850_USER_LED2,
3 N3 Y, E# m+ ?3 t0 c) _7 i+ \, p+ K                .name = "user_led2",* h' {( R- y- k- n( U" W- M0 G& _
                .default_trigger = "default-on",
, s& s$ p3 b* \' x/ \6 w7 B        },
, N3 B8 A7 F$ x8 H% T. I$ ~        {
% P- L$ X) l! z1 o3 Z+ q$ @                .active_low = 0," Q" K! G' g  W0 k, k
                .gpio = DA850_USER_LED3,6 f$ m! X9 A' ]( i
                .name = "user_led3",% y- s8 |' n3 e
                .default_trigger = "default-on",& X3 A! W. Z9 ]' L" r. N& u
        },
' K2 H/ b4 w" v, L- _};
# O- J, x1 b* Z& K2 @5 a
/ `0 e% Q0 O! c" }% C7 F3 `3 V& x8 Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! p8 w6 i' p! }2 x* K  |6 x  T+ A. f        .leds = da850_evm_tl_leds,
, t8 O& c! H6 o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 U# @3 o3 n# b. H" _% {};
( l/ V$ e; h% m% O* X, f  z4 T& @, ], n- ~$ e" Q5 k
static void led_dev_release(struct device *dev)
4 j: w) I8 r5 K7 Q, `  O. H{8 b) I+ m  d+ W( E! `) Y/ E$ H) U
};  z: v5 E& Y) z) y  E* i$ x' x1 G

8 H. V( p+ L. i+ d9 A9 B- e9 c9 ustatic struct platform_device da850_evm_tl_leds_device = {+ Y$ z" Z* W8 m5 r- b6 L8 e. o
        .name                = "leds-gpio",
* n1 |, Z' q9 V        .id                = 1,
" Z+ ?* E" W5 X# B) ?( {        .dev = {+ d5 u) z0 q; N3 O6 V2 P4 f* |
                .platform_data = &da850_evm_tl_leds_pdata,' T. H- P! }; Y" u& @7 ~
                .release = led_dev_release,. `! S4 o, l" m  Z5 @% y1 F
        }
+ Q6 a6 u) ^3 [% J};
8 V* D8 {9 A) O: w4 S8 \* \' Y& O& Z: I) p1 H% T
static int __init led_platform_init(void)% O0 ]6 d2 b& z
{
  ~& U9 }" X/ a: X        int ret;
* ~2 d) i. H2 C1 m/ n* r#if 0
- X. _( Z; i3 K' I1 A0 V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 Z2 q) T* M/ P' ?% a5 B        if (ret)4 V; J0 d- T5 L: z; P; W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 ]" ]6 W+ F1 b5 [                                "%d\n", ret);7 \6 e( o: p$ C3 S$ I4 _: \
#endif
2 X0 z6 K$ L$ A/ p+ a        ret = platform_device_register(&da850_evm_tl_leds_device);2 U: J. |* I7 v; h- Q( n
        if (ret)- ], L. G. j* [* K  T5 A
                pr_warning("Could not register som GPIO expander LEDS");5 O( G  e: b+ j( [0 g: y/ u
        else
3 R7 x3 L5 Z$ _+ U' C& I9 u+ z                printk(KERN_INFO "LED register sucessful!\n");
2 ~0 d9 @5 i9 E9 l  j( F6 ?- L. z0 W7 ^! {* G
        return ret;% K: w; i6 w5 d0 @$ k. O
}4 g' s1 E: |/ M
* O( t$ ^6 k4 ~5 h( |
static void __exit led_platform_exit(void)
& M/ K0 K/ H; G  F{5 c$ T' r7 k5 ?1 t% R: A8 Y
        platform_device_unregister(&da850_evm_tl_leds_device);# ~+ A- p- Z9 a* K$ T

; r1 o; P% s" g# y3 a2 G        printk(KERN_INFO "LED unregister!\n");* _( z6 o1 R) X3 ?% i
}
9 |% r* [& D8 U7 N/ T( j7 a( U8 g' R  ]7 E1 i
module_init(led_platform_init);$ }9 R; i) b, ~4 P
module_exit(led_platform_exit);- o' ]" J5 N- f. E8 t) u/ |& i" H. \
2 L) c. S. C$ ]
MODULE_DESCRIPTION("Led platform driver");
0 m* ~! m4 D5 l4 \( YMODULE_AUTHOR("Tronlong");$ s( N1 [  p' \2 h+ }
MODULE_LICENSE("GPL");1 R& j5 I! ?) k5 K  H5 {; S4 M/ {( G
  Q+ f3 w* f% u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 13:14 , Processed in 0.047639 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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