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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% p( P9 P  s& t9 C( ]1 o
#include <linux/init.h>. }+ {  K4 R: k  V" I
#include <linux/module.h>  p1 \" ~; i" t4 l" W# k
#include <linux/kernel.h>0 m( Z& P# A) z4 |& d: [9 e
#include <linux/types.h>
. @4 I' H: C4 U% I- ^" C" F; P. b7 Y#include <linux/gpio.h>
1 ^$ N; u( S6 n7 j( h8 h#include <linux/leds.h>, \; J" @* S! y! }: H# a9 o3 i
#include <linux/platform_device.h>7 S* W9 G/ s( z2 `

( \5 R4 h  ^5 \9 @, C/ L#include <asm/mach-types.h>
$ E' t9 @9 v* m+ W+ \#include <asm/mach/arch.h>" N. ~0 N, e+ ?6 }% q/ e, h& Y
#include <mach/da8xx.h>& l, N" l2 H- a! Y! y# r9 B: Z
#include <mach/mux.h>/ r7 C; ]2 D0 K6 r  C5 n
, I0 \8 b' b% T! R* E  b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 Q7 z" G! ?4 |/ W$ h/ w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 M. z4 L) H% ~5 n' a% L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 t. ?" b4 X2 A* ^1 u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' }  L) X( U. K1 D, a5 Q. f, W+ H+ d6 A5 @8 a+ _0 G
/* assign the tl som board LED-GPIOs*/- ?5 }7 ]. |9 ^3 p8 {
static const short da850_evm_tl_user_led_pins[] = {
+ D- ]7 u1 ?8 {+ e4 {. E        /* These pins are definition at <mach/mux.h> file */
* B) a" q1 y" j- s9 ?$ {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! w* r9 `6 G, X# F7 C        -1. r8 I: U5 Y8 d
};. ^5 P4 d. \% s% g5 Z

( D5 [3 N$ ]8 k9 k& k! T% ~% hstatic struct gpio_led da850_evm_tl_leds[] = {
% T  |7 R% K* h; W. T. K        {' F. r; S2 i% Q" a( z& ]/ d
                .active_low = 0,
& |5 }8 ]) @5 V                .gpio = DA850_USER_LED0,! S# s8 T0 P* \+ e" X0 u
                .name = "user_led0",0 O7 }- b0 C- s" U( N# i. b
                .default_trigger = "default-on",- ^3 C5 ]" y' {5 J& y1 X, B# @+ p- a
        },& r) t# ]# {  S4 H) R1 Q0 i( J8 X
        {, O5 O6 [8 p1 I3 C* q( J
                .active_low = 0,' B* j9 }" O2 H8 f1 b, W& _9 k8 X
                .gpio = DA850_USER_LED1,
9 p  H' \7 R) r5 i                .name = "user_led1",1 g/ m: G& j- j6 H2 w
                .default_trigger = "default-on"," p  c. \' Z8 U# p5 Y
        },  _& I) S, ~! h% R- T4 Q
        {! _# y, [& h7 O. W7 e( ~
                .active_low = 0,
- A, |4 }& o7 d8 C. B+ }                .gpio = DA850_USER_LED2,7 U' C4 D( a9 Q4 {0 ~5 F/ v
                .name = "user_led2",  p0 w: r, p" x9 }1 n1 K4 n
                .default_trigger = "default-on",
- j; i% A0 y! u        },1 m- `0 M( O  A( M* e7 F
        {) Q5 G) O3 t6 B5 T# V4 \( o4 _
                .active_low = 0,; {& ?! p& \' n0 E
                .gpio = DA850_USER_LED3,+ \2 ?  k+ J! i: c
                .name = "user_led3",3 R* a) I9 ?0 S( ]! U+ w3 G
                .default_trigger = "default-on",
8 w1 Q" U) s. A        },! x9 J, b( L' M
};
4 `, ?/ R. N3 d5 i- P+ ^' n# Q! {8 w  A' @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- O4 X& Q, W0 h; Y# g, c        .leds = da850_evm_tl_leds,1 v& B" m, C8 b' z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 {6 c3 S8 K5 S, s5 ^! R& R5 S3 P5 }
};# n4 X- T" `8 y
/ [/ P* w2 r) _9 T
static void led_dev_release(struct device *dev)
- ?0 |0 o& _1 f' i, T# U& v- }0 M( |{
6 q& I, s: S& r: n3 ?};
0 B5 A" x( ]6 |. x  l" f' {# v2 r& m$ h
static struct platform_device da850_evm_tl_leds_device = {
& j6 [$ i3 Q* h( C$ A; R        .name                = "leds-gpio",
5 \2 @( H- O* E7 T1 f& ]        .id                = 1,
$ v/ q0 ~* Q) O5 k8 @8 u        .dev = {8 j, q5 i5 q- c2 m, c
                .platform_data = &da850_evm_tl_leds_pdata,
7 h3 X2 d$ |; a                .release = led_dev_release,9 H9 Y% @" B% m9 z
        }2 Z% d$ q- \5 |1 ?
};0 _- |7 N7 X5 J- s* p  Y

, d* p3 s5 L! j0 U+ X' |+ Wstatic int __init led_platform_init(void)
6 R, o. Q) j( [5 ^: L$ m" a( Q{
0 }. r$ l$ O+ b4 A+ R        int ret;+ E6 Z% f4 B& ~' ^
#if 07 B3 H+ ?) z1 r4 G* r+ k/ L2 X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 G8 u! b1 F5 i8 i+ U9 t
        if (ret)0 I) H0 Y; |6 a! ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" D% q/ l9 Q% D! a                                "%d\n", ret);5 K# j7 R% E/ v7 c' ^/ x
#endif
, A2 ~- n$ W, k& Y! ?) z0 `' r        ret = platform_device_register(&da850_evm_tl_leds_device);
4 D2 p$ A0 V9 T& b        if (ret)
. x. O0 F/ m' Z9 n! {7 E) o                pr_warning("Could not register som GPIO expander LEDS");
" W, n; u+ t  ]! A+ f& R        else
3 q: j5 W8 Z3 N. L" ?: x                printk(KERN_INFO "LED register sucessful!\n");
# s5 T, `, N  e+ U& u' N2 w+ [* H" V- j
        return ret;
# P4 T( b7 l+ J+ B3 j' B4 U; X}
" f8 E! l+ ?! u  o9 D+ P( G: [' x* _
static void __exit led_platform_exit(void)
6 I3 _4 r: S8 h* q$ M5 w# ~* _{% E9 O  j7 E: y: k( N' H
        platform_device_unregister(&da850_evm_tl_leds_device);: I1 ]* m( @8 f! N: S
  w+ v: \8 s* g* @; \' s% q
        printk(KERN_INFO "LED unregister!\n");- S$ _4 P9 ]9 r4 y  I
}
; Q) u/ y4 R0 Q) E. f) ]+ D$ j) Z
module_init(led_platform_init);
" p$ `" \: u& x: g5 Bmodule_exit(led_platform_exit);3 |+ C# J* \3 l* k- V" P4 i
6 A* }) q' Q. N  j$ ?* @& h
MODULE_DESCRIPTION("Led platform driver");4 j# P" P9 [# n& a9 w
MODULE_AUTHOR("Tronlong");
9 s% g6 o' R3 ^" mMODULE_LICENSE("GPL");1 \  }; E: v$ y1 Q& C8 `* e6 c

4 m. g# Y% |/ `, r) j6 H; a2 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 17:23 , Processed in 0.036519 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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