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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 Z4 g+ |  N6 S6 e8 v5 `& G
#include <linux/init.h>
# q. U" O* ~  y$ {& N+ _#include <linux/module.h>/ S! \7 v1 S% B6 p, C, M9 N
#include <linux/kernel.h>/ h- t3 R  L/ g$ {) L
#include <linux/types.h>
5 f, a7 Q! o% c2 f#include <linux/gpio.h>* B* o$ R8 `7 j' B, s: ^+ ?3 A
#include <linux/leds.h># U. R% i& n9 I' t
#include <linux/platform_device.h>
6 t, _9 W. P0 I& h5 L) l  \( U. n9 i1 w9 Z
#include <asm/mach-types.h>
% m9 e, Z- g* }% E#include <asm/mach/arch.h>
+ V4 W" [3 m, I1 ?#include <mach/da8xx.h>9 q" l4 o  U: R! c" g" ~' V
#include <mach/mux.h>1 a) F: S' \$ H, n0 i& I
& O% i2 r% ^( y" ~' I; J+ j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- a  A6 O2 w6 z# F  @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 i" K" A) \4 i7 F/ f& V% ]1 u% I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( D" q- l$ m2 j, I4 \0 W0 T6 l
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 E. h* M0 z* m* P* D' j
! D6 E5 G* o- B' i$ ]
/* assign the tl som board LED-GPIOs*/" M0 ^  |/ M& _7 P
static const short da850_evm_tl_user_led_pins[] = {3 z  S6 o4 o& M6 m, [/ }- T
        /* These pins are definition at <mach/mux.h> file */' X) |$ H4 H. F/ S* f/ [# {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," \3 A9 b6 K' ~
        -1
" R: [4 R( S9 B( K! ?7 l};) O# ^! N# }7 s

# c/ D( Z; n/ V. fstatic struct gpio_led da850_evm_tl_leds[] = {& F3 i2 W: w) d* ^& U
        {
* c/ O$ [* b9 O- A5 L                .active_low = 0,
9 a% l: ^' E. K# t* |/ X                .gpio = DA850_USER_LED0,
+ `* w# ?" f5 e9 h- ]+ G: D, a! O/ X                .name = "user_led0",
9 n3 c. Z$ X7 h+ o0 N0 G2 K' @& L                .default_trigger = "default-on",7 j: ^2 Q2 E5 B( o
        },
* R; N! i1 U7 t7 X; O        {
! k# {- P! L# f( t  t                .active_low = 0,, ?, i+ _( D+ t
                .gpio = DA850_USER_LED1,' G/ K  v; a& n
                .name = "user_led1",
! c; t4 H; F# I5 m  |$ [( z                .default_trigger = "default-on",
: T* r0 Y( d. q( `        },
' }$ |: y0 V4 F/ [' x5 i        {+ j* G7 R8 p  x8 u) v) C2 P
                .active_low = 0,
# _- r5 N6 E& ]9 ^# o, z                .gpio = DA850_USER_LED2,
: Q. t4 _8 g+ r% q, J4 H                .name = "user_led2",
/ D: Y0 h( |5 [2 k2 J/ X5 E                .default_trigger = "default-on",
) X- C. A2 J. R4 [. Z* g. L        },
3 P: `6 B  b5 a4 E% @* N4 X2 K5 y        {
/ [5 V4 l2 y% r7 X& E' q                .active_low = 0,
6 o, p+ \! B9 L: B! N3 h: h( Q                .gpio = DA850_USER_LED3,; V6 h* K0 B- z* I) B; \9 J
                .name = "user_led3",7 `: U& Z. A( D& N
                .default_trigger = "default-on",
/ F: E# t$ z3 w. D        },
7 ~3 S1 t, g1 S0 U};
3 a1 A2 B# L2 a# J
" F7 A1 l, B& K! D, l1 istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) w8 q4 l  N  \: W        .leds = da850_evm_tl_leds,. e; Q' }9 r) P" ?) _0 n1 v; g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, S  F0 t- e! V0 h
};  T9 e) p9 h6 X$ W4 `
# X: F7 w( c% n' B8 o
static void led_dev_release(struct device *dev)* o- ?$ f" ]1 q0 K% p- x
{
. M/ }: r# _; J2 c# O};
4 J4 l- c& R+ ]8 F  O  [6 U/ f# g7 A2 [3 L8 W
static struct platform_device da850_evm_tl_leds_device = {
- f9 g* h1 P( M5 _$ ]8 }+ M        .name                = "leds-gpio",
* S# T9 Q* R- A        .id                = 1,
- X/ z! O5 d# e' E, F7 Z, D        .dev = {
  g% p& [1 w( a+ ^                .platform_data = &da850_evm_tl_leds_pdata,
6 c" k/ `) s  C& z                .release = led_dev_release,
  P. ^5 G# d- I" Z. o8 ?  |/ |6 x8 g  J        }
. A  \% p+ P1 e5 m};
/ {5 W- h" k# q, u! Z; I5 s- ?" Q2 Q/ D3 n4 O7 D
static int __init led_platform_init(void)
" j( y  {5 `1 k6 x/ Q{  j: l, V# }, @1 p5 M3 k0 a
        int ret;
7 J  g  ^: E$ x/ s: Y2 V' }#if 0( \  G: G0 Z; \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 m/ o" {9 x$ ~/ Q0 u2 P8 N9 G" h
        if (ret)" x9 b' p& y- _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 L0 f- {; u' q' P& U, C( B                                "%d\n", ret);/ T' M, l- d; S+ H1 |! s- q( s
#endif) }4 |* F  k8 @8 t
        ret = platform_device_register(&da850_evm_tl_leds_device);8 {& V' R1 U4 Y1 Q+ L
        if (ret)  q( j. E( [0 [/ p# ?
                pr_warning("Could not register som GPIO expander LEDS");3 f( X* A$ ~/ y' R8 j" F; J
        else
" A2 G  c* V: I. q5 `6 c+ a                printk(KERN_INFO "LED register sucessful!\n");
2 O$ |8 z# @* j# ]/ Q% N- Z, }
$ t- V5 V7 x# z# |' W- ^, c5 f, r        return ret;4 e) Y3 W+ t5 l' G
}
; k4 g4 \8 b2 Y7 y
& z4 @8 j4 E" |/ z0 Jstatic void __exit led_platform_exit(void)5 w7 t) j' E8 B
{; Y& Y5 Z; D5 |; N/ x$ q
        platform_device_unregister(&da850_evm_tl_leds_device);
7 }. o6 ?; t) G' M8 P2 j1 D+ d. T( Z: e% Z" l  U. z/ w( o
        printk(KERN_INFO "LED unregister!\n");" z+ i0 V& V  |4 g& @1 G! ^
}
) m  K2 N) Y/ D& _6 P- s7 L" ]1 }% U
2 g. y0 U# q- U* ^module_init(led_platform_init);
' y6 ]) e, f, Z+ `module_exit(led_platform_exit);
- l5 W' X! W+ S/ w4 M9 @' d! i
2 a! v3 Y6 Z: Y6 |6 ^# T7 c- i, ~5 VMODULE_DESCRIPTION("Led platform driver");
- Z) ?! I0 C5 Q# u$ u$ F1 ]MODULE_AUTHOR("Tronlong");
1 q9 l5 k/ `8 K8 h. N( d# S" BMODULE_LICENSE("GPL");
6 z: D! W) Y9 e1 O. _. p5 }2 O4 b0 p; L2 a' s. ~4 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-17 05:31 , Processed in 0.038584 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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