程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ T2 I- H) P' P* ^, \#include <linux/init.h>
2 {& |- g: p* v7 k9 m#include <linux/module.h>: h' W- i, A2 U( G
#include <linux/kernel.h>
/ F9 a. }% T" k3 x6 N. Y#include <linux/types.h>
3 O- l' i$ S! I1 H: t) O) N  ?#include <linux/gpio.h>
" k/ x5 D8 L% ?5 I3 Z: I0 e#include <linux/leds.h>
6 v& i# S/ L. @9 N5 E#include <linux/platform_device.h>
0 [* h! p. e* L- _. c; C& W& u/ r" {& A0 |
#include <asm/mach-types.h>
& J# S+ Y! i- m/ O#include <asm/mach/arch.h>
6 Z% p2 g" z4 N  J8 E7 I4 L7 P4 a2 x#include <mach/da8xx.h>
: F* Y! A1 A- h, j; v0 \) e, G#include <mach/mux.h>
' f, C- B) C# E: Z
9 D9 }( _+ g' ~5 q8 d2 p  i#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 f+ Z3 H6 L! A$ }) l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 @* o8 g/ f2 n; A9 n) I  M8 n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 N. i' }$ N0 C6 q6 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ ?: u1 r7 @* p( }4 z5 f
4 c/ A0 M8 G; c/ C
/* assign the tl som board LED-GPIOs*/* f$ r" @, E" Q2 a  w& }5 R
static const short da850_evm_tl_user_led_pins[] = {) t; h. F; f9 M& ], h9 O3 z, f
        /* These pins are definition at <mach/mux.h> file */
* \4 U1 Q1 w- D: v' q( A2 \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- U* k' \1 I& h' i2 e        -1
6 F& H+ d, j3 k) d0 o3 V};
; q% B% E/ l9 C3 x
# r2 v& U/ d8 U8 a; pstatic struct gpio_led da850_evm_tl_leds[] = {& o; K: b2 s% j- N. P
        {
  Y8 r. B9 \( @/ m                .active_low = 0,9 |* o" c& G. M" b8 P: F. Z( T
                .gpio = DA850_USER_LED0,1 @+ H" {# O( d& t! C
                .name = "user_led0",
9 ]. K' O: T+ v  Q3 H" b% z+ n2 s                .default_trigger = "default-on",4 T+ E9 F, W& N: w% ?3 Z
        },
4 B4 u, E9 J" y$ |6 `        {
6 |' |7 T8 z. J3 Z/ u1 t                .active_low = 0,* g3 s9 v0 z) |/ i' q1 U" V
                .gpio = DA850_USER_LED1,, N4 v( p  a- u: \4 d" F# {0 A
                .name = "user_led1",
# c- h! Q5 p( Y+ S+ M- i* d                .default_trigger = "default-on",
" n( _" y2 B; z2 K5 m* M5 |        },. p3 g6 X  G" ?' J, T% m, h
        {
8 g1 I3 L) T0 y# |& n! k# \0 y# A5 m                .active_low = 0,4 s/ n$ {5 z4 b6 p- N
                .gpio = DA850_USER_LED2,
! ^& p. H4 t5 c3 b                .name = "user_led2",
& U# B* ?" g. e6 ?6 C/ t) L, i                .default_trigger = "default-on",' A6 k& ~3 H$ Y, i3 H! z
        },- |4 T) }1 j0 p2 p0 ]; ^
        {5 I' [' E9 H, f/ M
                .active_low = 0,
0 {6 j' P: A. N% B1 |0 F, M                .gpio = DA850_USER_LED3,
% r% m5 i& ?: h9 t                .name = "user_led3",
- v8 H$ ~8 x. B# [) v6 q: p                .default_trigger = "default-on",
1 U/ f. O+ d7 ?; w# p; J2 {        },
# d. U% I& t. b  O$ a};
  u2 M4 \% ^( x% g# H8 v, D/ ~+ f1 J; z( Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  f0 J% ?3 s/ [        .leds = da850_evm_tl_leds,7 J. R* i& p4 t: j$ n* j/ E$ b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 N2 [2 C0 D" @1 b
};
2 G2 U! f; r9 s+ G- Y2 C
( b  U  t" m& N/ Z; J. z; I0 astatic void led_dev_release(struct device *dev)& q* Y$ z$ }  e) i" L# \  X4 d
{
# J: k+ l4 R, E8 J$ a( v1 Q};
2 H5 @+ P4 S! i2 C0 J9 X$ C
( S; |: j$ L3 n4 ~6 Qstatic struct platform_device da850_evm_tl_leds_device = {: ~% ~/ y# F) N( b0 t
        .name                = "leds-gpio",
; O5 `5 x# b3 Z6 f; h- H! P. N+ T        .id                = 1,2 w; u; z/ p5 _$ W; j2 i
        .dev = {
( L% A; [& A2 L                .platform_data = &da850_evm_tl_leds_pdata,# U( `, b, c, Q# H( W- r
                .release = led_dev_release,' C+ _. S. F- g$ o; v! q# i  Z
        }
' g- e/ _9 ~5 T& e2 R8 b) G8 C' S3 z};( f2 V( J  g+ T0 n- [
% n9 i+ B8 Q% h3 J
static int __init led_platform_init(void)
  C: s" i5 Q! N, T6 Y{7 ]! [. m- k' ?! l: }
        int ret;# h. n; @& Y# z, L
#if 0
; g+ |$ Z, J5 ?- j* k( w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 {3 }9 L% D1 f4 z1 z
        if (ret)
$ N8 V# f8 b: {! u! c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 e8 I- F1 `: T- q, q. u
                                "%d\n", ret);
; V, [) Z6 r7 ~2 m( Z3 i) b& i#endif
3 d( w4 ?7 O5 T3 T- W3 A        ret = platform_device_register(&da850_evm_tl_leds_device);0 K5 y8 R! [2 @. r' {  O
        if (ret)) ?  k* t' E# s0 f$ k
                pr_warning("Could not register som GPIO expander LEDS");
( ]1 ]6 B3 I( b        else
' f" q" T% M& a$ R! l                printk(KERN_INFO "LED register sucessful!\n");
% K: o6 |. p# }+ h+ x. [
/ p! v) T: i2 x) g1 r) a        return ret;" |( _9 L$ _2 b& V4 n1 j
}, L/ Q3 \4 s- ?, }

/ }$ f8 N" b, q5 ^" ^static void __exit led_platform_exit(void)
/ v5 _& A4 H$ r{
; ~0 m3 ]' _9 E- R7 U        platform_device_unregister(&da850_evm_tl_leds_device);
# j3 g+ S$ _  B8 S/ [7 t1 N. B+ W$ o+ a* v# S) Z+ v
        printk(KERN_INFO "LED unregister!\n");
" s/ V& e; m) j1 [8 Q}
2 I$ ?" m  y* q# b# e* D' d) S* d+ b7 \3 x' p, j1 v
module_init(led_platform_init);
* M, \& a, f" e1 h* M) Gmodule_exit(led_platform_exit);) R  U) O, f8 @& B

1 y" f" p/ N$ |' Y* X4 Y  D( i# wMODULE_DESCRIPTION("Led platform driver");
* ^  J) q% p/ vMODULE_AUTHOR("Tronlong");! b+ _) P3 X8 h; i6 ?* B/ Q- S) q
MODULE_LICENSE("GPL");7 H+ q, }0 u0 Z8 O' {1 b
: O" i" A8 ?( }9 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 20:42 , Processed in 0.037439 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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