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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  U& O5 F/ y7 j2 ^( |3 R" Y#include <linux/init.h>% S: C! M* z% X- l0 J
#include <linux/module.h>8 ^  _  b  Y/ a! r  M
#include <linux/kernel.h>- y3 K+ n7 o% @
#include <linux/types.h>
9 i, z; R, G8 H& }0 p% t5 w#include <linux/gpio.h>7 d8 t$ W$ l- O- u! @  [
#include <linux/leds.h>( ^/ r5 V) @3 Y( D! F8 }+ F, B+ p+ Z
#include <linux/platform_device.h>! g3 }1 z" D: o. C/ O
: V8 z& T& a. g" J+ c8 |
#include <asm/mach-types.h>9 R' c  C0 e( P  d% e6 i, |6 F
#include <asm/mach/arch.h>
& k$ J9 @( q# m#include <mach/da8xx.h>
$ v/ V# g# o8 z/ S#include <mach/mux.h>8 P* ~. @( L- C- M& F8 D
" M3 g- \& C9 [7 I$ u1 A6 a0 y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 x& u7 B7 ~$ D( L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& s, P. O, @2 C" ^+ ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. }! ]) a7 L4 g7 c! a$ ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); h0 Y/ P2 d  D/ P
+ F) R% j. w) k
/* assign the tl som board LED-GPIOs*/
/ F3 b3 J6 o, s$ ?static const short da850_evm_tl_user_led_pins[] = {
+ F4 x: A3 @  i$ I& x) p: h1 [        /* These pins are definition at <mach/mux.h> file */
: M# v( F  h6 B( L2 j7 Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; t0 S8 p  k1 P2 D( j; E" Q& ?6 G        -1, W. U( k9 R' t! j7 K  \  Z
};
2 d4 K* E: M4 M+ V: q2 c9 {) T, |! V9 M$ ]$ d# c7 r
static struct gpio_led da850_evm_tl_leds[] = {
( G; A. {% ?/ p        {
7 X; }7 X+ t0 l  v. k                .active_low = 0,
1 `+ ]1 n) H9 W5 M( k                .gpio = DA850_USER_LED0,
  ~; G& ^9 `. r" f, _                .name = "user_led0",
9 `! k7 Q4 R/ L6 [                .default_trigger = "default-on",
. A! Y9 A' F4 ~, U8 d        },
) P- g5 I: p9 k/ [8 ?        {
5 P8 }& u* x- \                .active_low = 0,4 m( }8 K/ j: }
                .gpio = DA850_USER_LED1,5 }: L* n4 M+ ?5 O+ z: H
                .name = "user_led1",
) r, k! O4 g+ v0 u9 r                .default_trigger = "default-on",+ A' l' K8 y- Y% [* x- ?5 ?
        },
( X  F+ V$ i; Q% U) i% ]5 o        {
! y1 P, k) H7 K" j( I2 V9 R                .active_low = 0,
# m, q7 _1 Z8 P$ L6 t4 `1 M+ v                .gpio = DA850_USER_LED2,
& e3 W) S! Z! J: \2 @) @                .name = "user_led2",* _9 L0 m5 X' h6 l1 Q
                .default_trigger = "default-on",; g. Z& H& I; B) R
        },
+ R2 f! Z1 p! i8 v+ j        {
/ ^  Q' T  c' T  f# [9 ^6 B                .active_low = 0,4 t1 D4 v2 h5 o: ~( N4 J; s
                .gpio = DA850_USER_LED3,
) {( z! |; y) s, a. s                .name = "user_led3",
. T. C' C2 \% l" X: Z2 X  S* r: k- s                .default_trigger = "default-on",% r% Z8 ?5 i7 u
        },2 Q! ?. M: h, I: S$ v! N$ A, D; H
};
7 |% Z  u2 X2 `( s/ I. N3 Z* \: l* F( h5 {  H  U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! L' Y: t. w0 D
        .leds = da850_evm_tl_leds,
- U! f9 ^& X7 P0 h6 x& L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. \& D* Y  u! ~; `3 t8 v};5 l3 }& @5 o& V8 H

6 A) p5 S$ O% n, m( O1 lstatic void led_dev_release(struct device *dev)) d* W; y- U0 j  a$ B  \
{
1 l* L" E: a/ Z* v, b0 H};
1 |. m2 N# i" |. Y" W' j2 S* P6 l1 Z2 R& z, `0 d
static struct platform_device da850_evm_tl_leds_device = {
+ m5 W4 T& t* x" \, q& e$ h        .name                = "leds-gpio",5 ]0 v0 v' A+ [# U+ R2 V) e
        .id                = 1,
! L3 H; t# m8 q        .dev = {
. J4 m- Q( V. @% f" I1 g$ Z/ ^                .platform_data = &da850_evm_tl_leds_pdata,9 f! J0 }' g- H1 X' W
                .release = led_dev_release,
7 H$ b& V: n$ @# ?  F        }
& `# t5 Z" P, I1 m: m. K9 c( x8 E};4 c$ x  |! N0 c5 \6 d; J

/ m" k3 t4 l3 q5 |) Z, ^9 j, J4 Bstatic int __init led_platform_init(void)) V& _4 k% [: u/ g
{
6 q2 I( X3 c5 d        int ret;
0 f/ A+ z8 n+ Z8 A) u5 Z#if 0
* ~& `* T! _7 B; F& V$ s1 i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 ]; Q, L7 C: ]# k$ `        if (ret)
1 L# U& V1 h; W2 [; r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# s& p* V" P$ j9 K                                "%d\n", ret);: ~, W; C9 q" q9 m+ L
#endif
0 ?+ W; n" C1 [9 U        ret = platform_device_register(&da850_evm_tl_leds_device);
9 k+ ?8 `6 K' U7 ?8 F4 b, p* w& l        if (ret)
5 J2 V0 g5 {9 I5 G! F                pr_warning("Could not register som GPIO expander LEDS");
5 V2 u; v1 D# _: r; n5 ~8 y6 g$ [        else
' I5 L6 M) H: z; j7 i: \* u2 j                printk(KERN_INFO "LED register sucessful!\n");# ~* {, i$ M3 {, [3 n# e! ^
, l& y7 N  [, O4 h  F. E/ g2 z  z! R
        return ret;
2 _2 x# x! v/ T' `}
# e1 I/ v7 c! m% W! m* \4 U9 W$ K
: `: V" V8 `  ?7 `1 K7 e1 M' T0 [6 {static void __exit led_platform_exit(void)
/ u- A, d. Q" J0 l4 H{
& Q, c3 M$ v' \3 {% ~5 I        platform_device_unregister(&da850_evm_tl_leds_device);
7 Q' l8 G' G' Y1 F# G% c' \' ^
        printk(KERN_INFO "LED unregister!\n");9 Z+ c$ J0 V: J& u0 G
}
& S+ |* Q- ?/ R+ s1 l- ]; d
1 A. T  P+ r# x0 I6 |& E: F5 imodule_init(led_platform_init);
" Q2 W6 U9 |6 @; imodule_exit(led_platform_exit);& ^# e. F6 Z# `1 L9 P# J
, I2 T/ w) v! J5 Q' y
MODULE_DESCRIPTION("Led platform driver");
+ b: ~# M) e! h0 fMODULE_AUTHOR("Tronlong");
: I  K5 V7 h) O/ H1 k* SMODULE_LICENSE("GPL");
7 i; I: c4 p% e& n' q
( b. N0 ?, K2 I6 J* y, L8 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 07:09 , Processed in 0.048988 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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