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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ K; c6 n3 Y7 A) ]8 p8 K8 P/ f
#include <linux/init.h>$ n* C. U  r4 F" t
#include <linux/module.h>
- x1 f4 Y' o& @6 V6 f1 T7 Q- d#include <linux/kernel.h>
  G% d$ ^) D4 i2 [- |; r- l#include <linux/types.h>
. i+ e6 ^0 B$ v#include <linux/gpio.h>9 j" {6 d, ]# {9 w( R" c
#include <linux/leds.h># W6 c# R8 p: [. {$ h8 {, |: T4 z/ y: N
#include <linux/platform_device.h>" g* T7 Q! r  B
0 P7 h9 ^9 |2 n( E4 v
#include <asm/mach-types.h>/ b* z: ]1 ~. G; j% A( S
#include <asm/mach/arch.h>
( S' A4 F  t: l3 l( `3 ]* C#include <mach/da8xx.h>
# k1 X3 Z& u* u' D& W#include <mach/mux.h>+ V7 _  t1 [7 w9 j1 S' C) }
; v9 U7 G9 [8 ~1 X6 {7 e1 t. F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 ]! E: r* J  M% M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 z* i. b# m( H% @9 d) G. o' R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 O" L# R9 x+ N. G, c$ f  Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) O- Y& Q2 C" Q- d
; G: }* z+ t% ~  |0 i: \1 y5 S/* assign the tl som board LED-GPIOs*/
3 R6 f) [0 W/ X5 S+ t/ H9 jstatic const short da850_evm_tl_user_led_pins[] = {
! V' x* P$ n+ H8 C1 x        /* These pins are definition at <mach/mux.h> file */7 v) a+ N) \. C& E' L2 q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ g+ a% j1 y0 [) g; r9 W7 o" E/ T% k3 L
        -1( G4 ^) r1 r6 Q* d# R9 K) Y
};" R. ?2 n4 B! F' ?8 a& p+ G$ p1 S

" w3 |+ X5 P4 w  s" ?" Cstatic struct gpio_led da850_evm_tl_leds[] = {
- O6 y- _, \6 U        {' @* M9 O$ z6 Y
                .active_low = 0,
0 s5 m' Y3 f* s  D! _0 h                .gpio = DA850_USER_LED0,2 O) k4 A5 V. w6 H
                .name = "user_led0",- f) B; A! l+ U4 J8 x( g/ z) s
                .default_trigger = "default-on",  Q* k% H8 Z4 t  W, e% ~9 v
        },' t" t1 V$ q# u1 ~( R5 a
        {
" F5 T% I! I3 R  {1 R$ d/ E4 ^1 A- A                .active_low = 0,: ?' K! H! y- M. L
                .gpio = DA850_USER_LED1,, R3 k, a( w% H+ Q( v# D
                .name = "user_led1",
1 b& X& @# u$ x0 T9 }                .default_trigger = "default-on",, G* ^7 u) \- s! v* R8 p( L' u, f
        },( @3 a- _/ T0 @4 E( o' t9 [! g
        {% n9 c" [' t- n6 S; F/ K  K, _6 K
                .active_low = 0,5 v/ Z, |4 S+ a
                .gpio = DA850_USER_LED2,$ B% u; M5 x0 A7 y% `7 A# `
                .name = "user_led2",
% K( P5 G8 {( h' K% P; e% [                .default_trigger = "default-on",
. b& [- b$ ~4 r9 H* q, y        },
* k! }9 m6 u0 P9 v" B        {0 F+ l1 q4 l2 W1 E! L. H
                .active_low = 0,
4 p. R9 o3 B% o                .gpio = DA850_USER_LED3,0 X4 E6 |0 N# U9 w
                .name = "user_led3",5 {) `5 r3 B8 `4 q' g' G+ T
                .default_trigger = "default-on",
; X+ s0 X" }2 L( P5 Y; \) O        },
- n" j8 {) ]4 q7 o' a: @};
# k2 A' _$ w! d# H, }' _9 `! F; b1 l" J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 _- e  `5 C1 L8 _
        .leds = da850_evm_tl_leds,+ Z/ Y! i4 b: B9 t8 `
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# G* V2 F4 j$ c3 s1 J9 {! U; v* Q
};
4 ]3 P6 N+ c8 F7 G8 Y5 E. u8 ]/ h2 J! F
static void led_dev_release(struct device *dev)5 @! K7 C, ~4 i6 x
{
8 v$ j, {' ]( {) E};
, v/ B7 ~. o/ h' U# I+ w: m! U, S9 t6 F
static struct platform_device da850_evm_tl_leds_device = {5 e: W% B& e8 G: D
        .name                = "leds-gpio",
3 r" g. L$ h. q5 g  h        .id                = 1,
8 D8 Q5 y6 y7 j1 q% M, w        .dev = {' T" T9 E( i" o4 v6 t" @
                .platform_data = &da850_evm_tl_leds_pdata,
& n' L! T7 x' z( `* \0 H                .release = led_dev_release,; n5 N0 t4 P2 }( f
        }) ~3 o) Y  Y: y: H* g: h. }7 c
};; _  Z5 t! M+ m+ ~: S1 I" l: I

5 E# z. E5 V2 dstatic int __init led_platform_init(void), I' \" l/ S3 T: z. q" S
{
$ I* l: w  ]4 x% u        int ret;, `, h1 H) e  _( g2 e# j
#if 03 ?/ e% ^- u0 U+ p4 R3 ?. ~. W0 R( V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 a; p6 m! {, w3 n1 U4 h; U( k        if (ret)
( W+ i' S7 l) n* m1 a" w3 }                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 ]3 \2 C  {( k: Q3 F6 Q
                                "%d\n", ret);$ O: Z, I  x- L, t* f& u2 n
#endif; D0 @3 f, f) r" \- K7 k& a$ o; a
        ret = platform_device_register(&da850_evm_tl_leds_device);+ K. B1 C1 I$ c( |
        if (ret)
7 w$ J6 @# E( r4 F, S2 f' q. Y                pr_warning("Could not register som GPIO expander LEDS");. r' T# R8 W6 v) I2 J& [
        else
* I, |- J  Y6 D+ J+ _( C8 E                printk(KERN_INFO "LED register sucessful!\n");* H9 J' ^6 h7 M& M
7 v; d. K% X7 D- }
        return ret;
. u* j, u1 S0 ]# W0 a}! s% V2 _7 i8 D% Q4 P9 Q# U5 B3 P# T4 k
2 t7 \% `: |5 s; [3 Z# `
static void __exit led_platform_exit(void)
2 M* q% R) n4 u3 M4 g{; q0 e2 c1 K* W7 U
        platform_device_unregister(&da850_evm_tl_leds_device);" o6 T1 k3 a$ Z/ h9 d8 C* L4 B
$ o: e( R% r( e( i8 o9 y2 K+ j
        printk(KERN_INFO "LED unregister!\n");
! f: ]! u: `( F6 I}
- Y6 Y. S+ q% o: r) F9 V" z" f) s+ M7 F, k% N
module_init(led_platform_init);1 n0 x2 L% _0 l" }" ?
module_exit(led_platform_exit);
0 [7 H/ }8 V1 u& U7 d6 w0 k: H+ @# t5 i: h) l
MODULE_DESCRIPTION("Led platform driver");0 d; Q  y$ T% j; J
MODULE_AUTHOR("Tronlong");; @. ?" W) l. B. f
MODULE_LICENSE("GPL");) B/ ^2 ]" v) V3 \  J9 ~
( J- g4 G7 T* M( K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 16:54 , Processed in 0.044022 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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