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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 s+ {, ^+ c8 e* C! P# N3 f: h#include <linux/init.h>
- y* I9 h5 l! B- T+ e0 J: v+ o#include <linux/module.h>
3 E4 J% Z  @. r#include <linux/kernel.h>
& s5 Z5 f3 ^, W: ?#include <linux/types.h>
2 @) D% h# w( {) D#include <linux/gpio.h>
  b) f6 [" D. f) `( `& a8 w: b#include <linux/leds.h>' Q+ {' N3 y/ L  h5 f3 C
#include <linux/platform_device.h>2 G3 [( ~/ Q6 p

2 }4 V& a% ~  L0 r& _6 w#include <asm/mach-types.h>
% C" {% ~- U+ t; r#include <asm/mach/arch.h># z7 c: d" C- P; p' x9 d, B
#include <mach/da8xx.h>
$ T/ C: f  p& d: ], L- d% I#include <mach/mux.h>
' t% F& n$ c3 J* N9 U/ t4 t/ \. E7 C1 ]3 Y9 r. i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ P+ q4 T. d+ v' j) o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( V9 \: s! ^! i5 f8 y( K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- J8 w  @% b& Z8 a' E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 f9 Y! J  t6 M4 `/ x0 z+ r  h5 O
8 }+ Y" J3 J" w, A% Z/* assign the tl som board LED-GPIOs*/
( T0 b5 Q9 p3 p8 V' Z9 \( r# Tstatic const short da850_evm_tl_user_led_pins[] = {
  ~" r. F4 W  m. C        /* These pins are definition at <mach/mux.h> file */
: X% g6 ^' l) J! X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' n7 I& w5 U/ s" P. K5 g
        -1
( d* l* ]0 ^- {! y5 y! Y& ?};' h) \( q. ^, L1 v

3 |$ q0 d5 G& D+ j8 Ystatic struct gpio_led da850_evm_tl_leds[] = {5 _3 t- ]  C4 m: l  m5 d  Y
        {
9 T) o6 |  ~0 d5 \                .active_low = 0,
# o: a4 ~. b4 X5 O                .gpio = DA850_USER_LED0,
4 V  s: w3 K- @7 A+ v! T/ U- {3 X' [' }                .name = "user_led0",
( R7 D" `* {$ p( [6 o: H0 ]                .default_trigger = "default-on",
2 N9 r$ W1 w6 `, R' z' L) C' Y9 r        },3 Q7 M$ E1 S5 ?9 j
        {# s. |* w! Z2 x
                .active_low = 0,
/ o1 W+ t# K7 a8 \5 N0 ~                .gpio = DA850_USER_LED1,
5 p1 X+ s8 `4 n! B                .name = "user_led1",; ~  n7 b" i8 C: i
                .default_trigger = "default-on",& @9 k( a, L5 M4 w! M9 \  k
        },. T) H* q( z* Q, [& L& G, p
        {4 |6 M& Z/ V" t1 R: Z4 j
                .active_low = 0,
: G* e. H7 A+ P                .gpio = DA850_USER_LED2,$ [/ {: A) R6 a( }0 ^
                .name = "user_led2",  W" ]1 a7 e8 ^4 ^* o8 Y5 i
                .default_trigger = "default-on",
8 H' i9 @+ B- t7 K6 p        },- J/ O$ W% z* }. \
        {4 \+ l; d" Z' o1 y  K
                .active_low = 0,5 d1 p" o; R3 x
                .gpio = DA850_USER_LED3,
8 [9 _* M/ O$ j                .name = "user_led3",% L- E: t/ x# k
                .default_trigger = "default-on",' o, W9 a; J; P3 [5 x+ H+ ^" p" J
        },
" v1 N2 M3 V0 {9 s9 J/ L5 R};2 z4 d1 D3 z+ a4 ]* a+ \' ?2 S
5 ^2 a* x- o. o: S9 c* b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 U) k) R! v1 e7 S8 J  l6 J
        .leds = da850_evm_tl_leds,
/ v( w9 G9 b# q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% L% i0 q! O& a. O3 f};8 p0 `+ {" [7 k, U1 L+ F2 a. P

$ C1 S( C6 V* j0 {% M6 Fstatic void led_dev_release(struct device *dev). z6 o+ f4 k0 k$ M; J
{
$ F2 @0 p+ x! ]};# n7 ~* g7 ^/ P
) _' @( Y: t- |, V4 r# q
static struct platform_device da850_evm_tl_leds_device = {& J! Y: _5 y  W( u
        .name                = "leds-gpio",; n/ q/ }) ^+ ]. s& V4 z( q
        .id                = 1,3 V" f0 o6 S& h# B% a
        .dev = {
" O% a1 t4 J0 |                .platform_data = &da850_evm_tl_leds_pdata,  @( E* }( ?3 J* u" v
                .release = led_dev_release,
6 r" k4 P# b; b0 W        }5 j) Q- Y( E4 L& e, J1 x8 T
};- F' t/ a: [" a& A4 ?' Y! i

) J) N  X( ]% Y8 bstatic int __init led_platform_init(void)
" \& y% ]4 f7 h; ^3 f( L- F$ X{
# o7 m/ I. ]4 ]: R# u8 ~        int ret;8 [/ C: o, [( \- }5 i
#if 03 c' k) X/ e+ ]2 K8 e0 y% |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* s. r" V7 K2 `  d9 X
        if (ret)
5 G/ ~; u; Z3 g" {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 C* W  t4 v% u- B                                "%d\n", ret);# R( ]6 n) Y3 e! a8 g
#endif
5 G3 p9 j1 w# ?1 C. r        ret = platform_device_register(&da850_evm_tl_leds_device);/ @+ A- Y$ R* u. t+ I* o  ^
        if (ret)
2 _7 a; c& k2 ~8 j: u' Z" i+ @1 o                pr_warning("Could not register som GPIO expander LEDS");
* I6 C9 r( P7 ]/ Q        else
/ _# i1 Q: f3 h+ F- i$ r                printk(KERN_INFO "LED register sucessful!\n");
6 t2 r) i. j+ o" }& V* B2 x* O* R
  J! H9 h+ [3 |# o        return ret;# G6 ], O5 N, `- w
}
6 `! i" P- ^+ G. u+ {5 Z3 A/ r  g4 ?0 K2 v0 I  L* g: f/ e
static void __exit led_platform_exit(void)/ M9 Z* T! o# p# W$ I* h8 O- k9 d
{4 F7 l, ^( w  H9 L" K' v( v, |; _
        platform_device_unregister(&da850_evm_tl_leds_device);
) w. ~: C3 d" u+ J- D0 E! f$ ^, v* t/ P
        printk(KERN_INFO "LED unregister!\n");! a$ T/ X1 g7 F3 _( \7 n; X& O
}
! Q0 w1 ^/ G" C: E# ^
1 e: ~! d5 m5 k8 E3 X' o6 D% emodule_init(led_platform_init);; q3 E) {" J' M$ i
module_exit(led_platform_exit);2 u" c! t7 U- R/ V% c9 D/ _

: r) n" a; u0 m  Z2 X/ k! }4 wMODULE_DESCRIPTION("Led platform driver");  I) f) c+ d% J) ?! ]. x6 D
MODULE_AUTHOR("Tronlong");
/ T, |/ g) ?3 A% J9 RMODULE_LICENSE("GPL");: z& t) R% G5 _9 I2 w

4 J8 j8 k+ C( M: z, J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 02:30 , Processed in 0.038021 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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