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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! A$ x/ P, U, q5 G! }
#include <linux/init.h>4 t6 V' J& p2 s* C
#include <linux/module.h>
  o$ m( @1 N8 K% {3 E+ v& n2 z#include <linux/kernel.h>6 G. l  C) G% R, M# p5 T
#include <linux/types.h>; X+ q3 |9 P. D
#include <linux/gpio.h>8 p# u. }1 L$ S4 s1 d/ G
#include <linux/leds.h>
5 F" f  n6 ^' @- ^% r: N#include <linux/platform_device.h>" o( F4 j" i& f9 S# C  q
# I* Z; k& S' y! u3 ?
#include <asm/mach-types.h>
" k: e* V/ w, G- t7 |#include <asm/mach/arch.h>! [: N) q2 ~. o9 a. O& f
#include <mach/da8xx.h>$ G+ T2 [1 A- S& u: L
#include <mach/mux.h>3 N3 W# Y9 m& f4 Y4 {$ m
; J0 f/ r9 `$ z: Q1 Q4 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 w# d& [& a$ M5 \) J( z( X+ Q/ ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# _/ ^' N" D0 [# z# R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, H9 J6 j, {! T$ Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  j# u0 n7 p; F8 `( X5 Z
* W5 Y4 [6 Z: |3 F) A7 }
/* assign the tl som board LED-GPIOs*/
2 U+ L, M6 q+ j1 S& d0 e1 Nstatic const short da850_evm_tl_user_led_pins[] = {2 Z* R' M" @2 s) l* B1 \
        /* These pins are definition at <mach/mux.h> file *// O! [( V( E- y7 g2 e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 w/ W/ |9 I4 @! j
        -1" {& Q7 P% z3 C6 R/ u% R9 X
};
6 E" r+ ~, z; ~; L9 N" B  |, m, j+ D. }6 l
static struct gpio_led da850_evm_tl_leds[] = {8 _* ~3 t; s* g5 s: G
        {5 ?# g; q- r% ?
                .active_low = 0,
& r: [2 M5 }: Y                .gpio = DA850_USER_LED0,
- _1 P6 P5 u6 u9 T( @  {/ F                .name = "user_led0",  H" x' @2 ]  C$ @4 P! D: ]1 q) l
                .default_trigger = "default-on",, h' n! @" V. q4 H9 a& _1 d
        },- ^0 y8 n  c+ B/ F) E
        {7 g! B. O* Z8 a8 d9 M" G
                .active_low = 0,) p; C8 Y+ X% k5 R; ~
                .gpio = DA850_USER_LED1,
/ h; X2 |% ?6 e3 j- C% T5 l                .name = "user_led1",
" M+ u9 }' R1 F                .default_trigger = "default-on",
2 Z7 Z, k" V, a! `! B; x        },
% r, J2 R/ E' n4 l. p! o        {
- t9 u8 }) h7 L8 ?                .active_low = 0,
8 o) _  R# ~$ j$ I. v6 G                .gpio = DA850_USER_LED2,7 X  b$ D# Z: t4 J
                .name = "user_led2",
0 O7 U, m% R. M; @) K                .default_trigger = "default-on",% _. ?+ A' H4 n" q
        },
) j2 z9 a! ^8 D) m) \+ ?. X        {0 I) b9 m- h& j  ?
                .active_low = 0,
) p1 h  b9 i1 U! i4 ^4 g, p' j                .gpio = DA850_USER_LED3,
* c+ d9 ^6 u3 Q( [# c                .name = "user_led3",* c- P1 ^) `: [
                .default_trigger = "default-on",* Y. N- f. ]3 ?0 Y  Q/ |2 B$ m
        },
2 |6 V! N! t! A6 e};4 T1 i7 x) x  p% j
+ m. N# \+ k# Q; O1 }5 A  z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! D. c2 O1 O3 Q        .leds = da850_evm_tl_leds,$ g/ P4 y( P/ X/ A! X- d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 {: g9 L3 K! h% z6 L" S2 _) M9 {
};) R; _7 j( c8 ]2 S" k% ?4 f! F
3 g0 J+ j1 `0 p2 O* i3 v1 K
static void led_dev_release(struct device *dev)
8 z+ [; y( T  [2 G8 O{
- D, x) I2 ]5 d, k1 m( r. f- D% M};& M' y# H3 O9 \# V! a
1 N) _0 X. C6 e5 V2 b, J7 e% O
static struct platform_device da850_evm_tl_leds_device = {
, x. _. R3 l3 _# A. f- H" p& g4 J        .name                = "leds-gpio",
* M5 G# j6 k7 m: ^4 }( q2 N        .id                = 1,  y4 s& z/ O1 G: @1 M
        .dev = {
; x( r. i9 W$ c- q8 a                .platform_data = &da850_evm_tl_leds_pdata,) e% k' [3 G( `# r5 }' C2 d+ G
                .release = led_dev_release,
/ ^+ S" y* H5 I9 q        }
6 ?" i, J, O( X) ^# G1 h};! U+ ]/ B( Y5 ^

/ d! Z# ?, R  L  n, M) ^static int __init led_platform_init(void)6 b+ Q3 t7 o, m9 Z
{
& E7 m: _. |5 W: b" S        int ret;
8 Y2 `& X- |2 a; a3 l# J0 g#if 0
6 L9 O* r. i8 i, E, D4 T2 ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 k1 t9 Y* L1 [% ]
        if (ret)5 E; E, W; B" g4 f' ~0 _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ ]+ M$ f% E4 y5 r6 \2 f                                "%d\n", ret);9 P/ y' F- R9 j" k
#endif' u, m* }& |2 U, M- `
        ret = platform_device_register(&da850_evm_tl_leds_device);7 P% W! g% H# i9 O2 |
        if (ret)
3 N3 l& n# g5 _6 \0 I: f) o5 x+ ]                pr_warning("Could not register som GPIO expander LEDS");
3 ]  U3 o9 F* E  }$ q) X        else, R1 \, O0 j: Y+ f1 f
                printk(KERN_INFO "LED register sucessful!\n");' e( l$ N. m+ Y0 ^5 P, \- C, {

( f; o( x( `6 X+ u; E, B- ~        return ret;' z' Z  x" [( a# t/ n5 z
}
: p1 p; ~. B7 D5 Q5 @* ~% ]  m. I! c$ b1 v: \# W+ L- m
static void __exit led_platform_exit(void)
& s0 G6 K; M7 t& Q9 `{
2 C9 q1 I% _1 [4 g! W2 C" E        platform_device_unregister(&da850_evm_tl_leds_device);
& K# |% i/ h9 Z' f! }+ l/ y4 ^  H2 C! Z% q) q$ A' F
        printk(KERN_INFO "LED unregister!\n");( N; z' R1 t7 U+ l, k' T3 w$ }
}
! ?8 j5 p5 P. n$ u9 ~0 M/ S" z4 e7 w- j4 j/ ]% p& j: v1 @7 _4 p
module_init(led_platform_init);! h$ R+ |9 K" t
module_exit(led_platform_exit);
3 b) N% }" R$ t8 _7 S- F
8 s8 y$ W$ [$ `MODULE_DESCRIPTION("Led platform driver");+ A( H+ H" x& m4 ~) F0 g4 T
MODULE_AUTHOR("Tronlong");' M  e9 [5 p; I- h% Z, _
MODULE_LICENSE("GPL");+ y1 n( K0 i9 [- C" B
* X1 x) D6 S) |7 X+ ?6 g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-6 22:28 , Processed in 0.043182 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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