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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 j: a" z) o; R5 k( Y- d! [. s/ P#include <linux/init.h>. S/ \7 j( r9 ?" s
#include <linux/module.h>0 j% K% o& ?' p* `7 _$ ^
#include <linux/kernel.h>
. a, Z* F% i. M. b#include <linux/types.h>1 O0 X! [3 m0 e8 ^) `! q
#include <linux/gpio.h>
1 F; K# ~6 K9 w. F#include <linux/leds.h>8 b" M# M4 i. n7 B& P9 E+ w. z
#include <linux/platform_device.h>) M+ y) e3 j4 W& w- j! x5 E
; H! [7 j& A1 ^# I% U. X- R$ {
#include <asm/mach-types.h>5 h: a& g$ L+ b) l2 @. k
#include <asm/mach/arch.h>
9 Q: n2 n; W+ y2 a#include <mach/da8xx.h>: n# W; b9 E) y. D& L  |; T5 G# A3 G
#include <mach/mux.h>
7 F1 R' G* a+ z) d7 ~6 E( R7 _2 ~: R% p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" r! {) K! P4 P* F8 @4 k' O  f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 c) J9 s" p7 ]9 O1 Y1 _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! @$ }6 Y' H0 I" n* K; n4 K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- E" I$ ]+ m, ]& D# W( v. E2 A. a. e; }, O* S4 }. W2 `' G
/* assign the tl som board LED-GPIOs*/
2 F. ^* I8 z3 Xstatic const short da850_evm_tl_user_led_pins[] = {. A( L; O5 K7 n# V4 ~$ T
        /* These pins are definition at <mach/mux.h> file */( h4 V) c# i3 d7 U5 i  l& n, n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! g1 ~$ X* h1 J: z
        -1- \5 P3 h0 `8 h# d
};
, b+ O) k  g, p$ R9 n
* \! O! M: Y- q' F0 ustatic struct gpio_led da850_evm_tl_leds[] = {' L0 M6 @1 q9 E3 @4 I( O  S
        {5 ]: x2 ~9 t5 `
                .active_low = 0,
, a: I7 V1 Z. l4 G+ Q                .gpio = DA850_USER_LED0,
5 o# d- L6 F6 L2 |  s                .name = "user_led0",
! K# o( [& D) a4 m; i3 X                .default_trigger = "default-on",) ?9 k' L8 P: j2 N) V
        },
, e2 s+ ]  n( o9 O6 O, V' E& A        {; P, e; w& B6 C6 {
                .active_low = 0,7 Z  n$ z9 Z+ ~/ g4 ^4 D
                .gpio = DA850_USER_LED1,
, E5 e) k. K8 L# p                .name = "user_led1",
2 d, d" W; h/ l/ h                .default_trigger = "default-on",, m8 V3 t: u$ B6 G
        },
/ ~, e$ Y- ~8 [        {) g6 U( d( v0 M! A
                .active_low = 0,9 k) Z4 E$ c5 C3 c% I0 _% T
                .gpio = DA850_USER_LED2,. C5 D2 S) w& `1 m' X+ ?8 r
                .name = "user_led2",1 q, R, q5 }/ y) k* Q' h8 G$ o" Z3 q
                .default_trigger = "default-on",9 t9 V9 g1 }" l# f# n) [
        },* n, G* x/ y+ f" ^
        {# ^) P- ]" ]+ s1 Q4 q& i! f
                .active_low = 0,
  m6 f! i- b: m1 g" \- A. q" O. [                .gpio = DA850_USER_LED3,) V4 b$ M5 v% ^
                .name = "user_led3",
1 c# L) M$ \) s                .default_trigger = "default-on",; i8 o* r) E6 A; T, ^
        },' q, c5 W, t8 t/ b
};0 Z8 S: ]; d+ ^' S

" B6 a0 \; ], J% ]7 j8 r# J; z8 Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 h; {6 G5 F- S) |0 b
        .leds = da850_evm_tl_leds,( ^4 H7 P8 P' Y& w  d, @; l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) W$ L( A5 @! d( k& M6 l6 F};9 y+ w2 e3 F0 u6 U7 m0 O
( [1 U- `  I3 l: Y% z  w+ e" ]
static void led_dev_release(struct device *dev)
  t% f2 J, i) v0 \# R# `{1 Q% y5 i  Q+ w5 [( M
};
; e" n$ A* ]/ F( b" i. R$ ]
) M* w0 ?4 O  _, Q+ _static struct platform_device da850_evm_tl_leds_device = {& O2 T& d1 z8 d9 ^0 ]
        .name                = "leds-gpio",
+ Q- C8 c  F- l+ j7 V- L        .id                = 1,
; Z  T6 \/ W9 ?! u1 g        .dev = {
7 V! L& S9 |( b( F+ E. Q2 V; I" I                .platform_data = &da850_evm_tl_leds_pdata,
7 K3 q2 N/ _9 e- g* Z                .release = led_dev_release,( a- d1 w3 c7 |, K8 L3 e
        }' t% I7 Z% g0 m3 X" Y9 t
};
5 E3 F) E/ I- K, E0 q$ x" G( x
7 ]6 q# A+ q, g3 s0 dstatic int __init led_platform_init(void)5 v; X9 O+ B9 z; R& D
{
& I1 U& W! R) W; P        int ret;
. @, ^# Q$ C. M5 P: q3 o$ Y. P+ Y#if 0
8 g2 }' x% Y0 B3 ~0 D' c5 `, k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 H3 n8 e" M, U
        if (ret)! X! c0 x7 ^9 b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; n5 C1 f& ?& U# a7 M( t                                "%d\n", ret);
2 z" l9 _* v. {3 P; Y#endif" C" T( P" g! d* y( [# ?- Y
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 _5 l3 q8 r8 {& I        if (ret)! v8 k7 r8 o- t# `  l
                pr_warning("Could not register som GPIO expander LEDS");, [2 Z: m0 t5 r! F6 j) w
        else
/ o% f7 c, E, X! b  v# p. A                printk(KERN_INFO "LED register sucessful!\n");# M$ B) [, X+ @1 v& q, U

4 ~. I+ U+ K% U: q2 g, `7 G7 o& P        return ret;
2 x  w% Q9 L5 ]' B  a}# a& F% G$ L' }/ E' c  u* f

3 m" c6 o% r1 E4 A1 dstatic void __exit led_platform_exit(void)
/ b& Z5 q/ v& |2 w- K# }% }+ m0 s{# o6 [! n1 Z: _
        platform_device_unregister(&da850_evm_tl_leds_device);
; X6 S$ D# K8 Z# B
5 e# K7 m6 P& R& Y5 w( l; v% B& ?        printk(KERN_INFO "LED unregister!\n");
' ~$ }) r6 q1 z+ j( u}  R6 f2 \) O) N: Q! d  Y
, L1 c$ K& ?; ?- I* B1 F+ w  c
module_init(led_platform_init);
3 Z, Z1 ~" g: E8 X& i3 {  emodule_exit(led_platform_exit);- q4 {* L/ g$ U, z0 ]4 K
! _) G: O( |+ G* Q9 C5 f
MODULE_DESCRIPTION("Led platform driver");" h2 @' o. T' p9 \4 q
MODULE_AUTHOR("Tronlong");
1 I+ M7 K8 D( [0 n0 ?  z  kMODULE_LICENSE("GPL");& X/ O8 @5 t4 w
2 l/ {, ~2 y0 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-8 05:12 , Processed in 0.039568 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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