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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& R$ s. s8 f0 A. [
#include <linux/init.h>/ e9 ~1 j$ M, s$ r; V+ F
#include <linux/module.h>% w, g% O: X7 A* o# t5 q/ y4 H
#include <linux/kernel.h>
% ^, `1 |  e4 `6 ?#include <linux/types.h>+ _/ R8 c) ]; J( ]
#include <linux/gpio.h>
' x3 r  F# d( n8 S* m#include <linux/leds.h>% O% k2 K! s$ Y% `8 [. ~0 G
#include <linux/platform_device.h>
3 `0 c. S: d& X5 i" Y
  P1 U; _- J+ k( P( m#include <asm/mach-types.h>$ M8 l5 @  O4 ~! _
#include <asm/mach/arch.h>5 B% l- P% [1 C9 Q
#include <mach/da8xx.h>
$ s  K% r" J# q& t) y& p#include <mach/mux.h>% m# t9 |; x! I, y; a
4 {  s# p! g8 ?) A  E5 ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  u( W' B5 C+ D/ Q$ _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 S* q+ T) D% F' Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% n8 N/ }& t* m3 L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ U: h* W' l, X3 e' @8 _
' p, _& G+ T/ z" f9 `, I, J& v
/* assign the tl som board LED-GPIOs*/2 i3 V' T: h  H4 `( v
static const short da850_evm_tl_user_led_pins[] = {5 v4 _6 S1 G. @
        /* These pins are definition at <mach/mux.h> file */
5 L' d& G# Y7 f0 n& n: C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 j* j% v% u# F
        -15 @& `  L% W+ H0 D; H6 B9 m
};
! Z1 ~" R, g( A. a8 V( {0 I6 C* c. ^* b- A. ]
static struct gpio_led da850_evm_tl_leds[] = {/ k/ J& p- ^/ i2 h+ B2 V
        {
, l$ k7 f; l- ]- i/ V9 k: z                .active_low = 0,4 h6 A' H: ^6 g& g7 N, ]: q- S
                .gpio = DA850_USER_LED0,
0 X6 b, w9 m; V' y6 x. \                .name = "user_led0",
4 K$ z/ M6 u% X+ Y% L                .default_trigger = "default-on",* `! l5 Q% h( @, P8 |- p4 _0 a
        },* r; f: j) L! F
        {6 D; V4 I: y, \% v  Z8 g
                .active_low = 0,
' s, T- a- Q0 {5 w% A5 S                .gpio = DA850_USER_LED1,
. i# t, e5 B' t  {                .name = "user_led1",1 h7 K% }4 h; Y9 j- l0 \6 K% G
                .default_trigger = "default-on",
( p0 \1 z. O% h/ U) l9 f6 J        },
  E0 j$ a( H4 A" p3 {" J: w, u        {
& o/ ~7 I  c6 o                .active_low = 0,
$ }1 j& f9 K3 x' ?& I# Y  o                .gpio = DA850_USER_LED2," k6 S, {& o. s, d  x: p! }
                .name = "user_led2",
0 E1 L0 y  A0 w3 ?& E                .default_trigger = "default-on",
1 u: c2 d) l' F" R# v        },
4 U2 k( n' L& I8 \        {
  |" {5 S" o" a5 W; {                .active_low = 0,
7 x) w1 t  Y; y3 }; K4 b                .gpio = DA850_USER_LED3,1 B, E7 L3 J" `
                .name = "user_led3",
1 v4 X* j4 c: X" Q. Y3 k- {5 J                .default_trigger = "default-on",
7 ~/ q5 V( T$ L8 ^( P' p/ \: E        },6 A# N) F: k) N5 k  f& i$ V" d" }6 j
};: y" \- y5 T( e% Z4 v  i

7 N- H7 q0 T- Y# F; cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% \7 j2 {% r6 a3 T- V
        .leds = da850_evm_tl_leds,& A9 ~  R' t9 j) Z1 @% z6 n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; ?$ _: P! X* v: X3 H};
- T8 J/ }- D/ U+ s$ e
' m2 V! G3 t+ I# k- ]# ]( `/ ^9 ustatic void led_dev_release(struct device *dev)
; x2 i7 |7 j5 M* g. [{
) h0 k3 R% M9 g};! z, c8 n) P! j2 M/ P, F

$ q6 V' M$ u$ X0 x/ `8 lstatic struct platform_device da850_evm_tl_leds_device = {
' C* Q$ B" @- S- _        .name                = "leds-gpio",& a5 j' I- B) B  G8 i0 X8 @! y
        .id                = 1,) Z( ^. {1 e, W' r
        .dev = {
2 v5 V; q$ C/ M  k1 S                .platform_data = &da850_evm_tl_leds_pdata,
* K7 F, C) _1 B/ z                .release = led_dev_release,6 U# c' }; l5 P# u5 `
        }
# R: L2 j! |7 G' ^4 u( ^# y};! s, [/ j) P7 M, e* I" k# @
* C: U. ]0 W, a9 C$ f. ]! \
static int __init led_platform_init(void)
9 _* n" m" t+ B9 D! L{
. v: t9 b& [  }        int ret;
" g0 I6 e( e3 _$ x2 I#if 0
' H5 N" g; }8 `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% q; J4 U1 ~# F" ]+ i        if (ret)
& c) l: \. f, S4 ]9 A5 M' J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 @$ Q: B( u) D" C6 g                                "%d\n", ret);
: l6 ~# `! A3 c1 R& m4 U# x#endif% D& W! }5 r( n" l2 p
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 o, B* I8 k" O7 g8 K        if (ret)/ b# `$ ], y* H& k7 E2 C3 x- Y# \
                pr_warning("Could not register som GPIO expander LEDS");( k+ |; l8 Z4 x6 O3 v
        else2 R5 Q5 Y3 y9 Q
                printk(KERN_INFO "LED register sucessful!\n");
# ~6 |0 P1 b  H% U; T6 n' s( N
9 Z6 X5 W9 D, H3 F2 |; o! F% ~        return ret;# e, P0 H, K6 D
}
9 ]8 z$ ]( ~' ^) n& D" d( g+ Y1 }) d" W3 v' N4 T# V6 G  a
static void __exit led_platform_exit(void)
; G0 G4 P. J3 x5 h  \5 A* I9 A{2 K' y# C" z5 Z9 r% U! X3 _
        platform_device_unregister(&da850_evm_tl_leds_device);
: x! G5 w& A, s) @9 N1 d/ T6 r/ X+ ^8 K  H( D, w; q
        printk(KERN_INFO "LED unregister!\n");
' q* k% q! U+ V, z$ T) M}
' K2 T9 M, b# h0 Z* v4 d+ M$ ]! c2 R" v
) ^# a& F8 h0 u$ emodule_init(led_platform_init);
$ o1 [6 e, R) h5 J$ y" P3 [module_exit(led_platform_exit);/ h  z# Y( k' ~. x( N: Q: g; Q
/ W  a- P# m: ]4 _" O
MODULE_DESCRIPTION("Led platform driver");+ Q' U/ a1 \1 O7 y
MODULE_AUTHOR("Tronlong");+ z, D' Q; D3 R! U
MODULE_LICENSE("GPL");
1 [" A6 K/ v) ^  k) e  J  n# T  r; h" \8 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 08:43 , Processed in 0.038346 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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