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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' X8 E' g) S( f& O0 z6 z#include <linux/init.h>
& r/ C+ v' ]. H1 r2 ~# i#include <linux/module.h>- c' [' M+ j. O+ N: n* J. r
#include <linux/kernel.h>& w2 j4 i2 ?8 I! u1 M, T$ I& S
#include <linux/types.h>* }  @, l' U4 S9 Q) C
#include <linux/gpio.h>1 O+ [  b, T# o" B# Q3 B; w
#include <linux/leds.h>
, o2 Y2 o% _7 Y  C! R#include <linux/platform_device.h>5 L( z) b) t1 u! i+ n7 |) A1 E

; G# M* y2 n( y. W#include <asm/mach-types.h>. O# A1 @0 [/ i3 R
#include <asm/mach/arch.h>* {0 |( Q1 p/ c; I- f% e0 C5 o) Z
#include <mach/da8xx.h>4 b* n7 }1 _' f
#include <mach/mux.h>9 q+ k4 s% h. ~/ M

/ @! i3 r0 w5 G9 P$ J  z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' V! \; I! h. ]( ~# S/ Q- f1 ~5 v, J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 Q+ T, y! C+ @+ P  T3 J% j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  |4 I( F4 E. G2 `  H- H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 ~% X9 N0 P# E

2 }$ O8 X/ Q( V) J/* assign the tl som board LED-GPIOs*/) c% z# [2 V3 H$ S( k# G2 [8 `
static const short da850_evm_tl_user_led_pins[] = {7 s! D  r0 J$ M0 O, r
        /* These pins are definition at <mach/mux.h> file */& @; C( }3 O  _' Q+ @( H/ o; j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ j" F  L# H! g, H6 W  w
        -15 O4 _& k& Z# n( t6 @9 h
};# B; c) M: B- ^$ T6 K1 q
( x. F# n- c1 ^- e! d1 x( L
static struct gpio_led da850_evm_tl_leds[] = {2 q8 V" _5 c& T. ~* A
        {3 f6 i3 D/ q' ^0 x& l3 E% r
                .active_low = 0,
* q6 b+ v* \' n6 ^( N                .gpio = DA850_USER_LED0,
4 r: d9 o" R/ r- [+ f2 C                .name = "user_led0",
+ F- e. Q- I4 S3 Y6 C8 ?5 F                .default_trigger = "default-on",/ S- s4 C, C4 V7 ?& U# ?
        },6 S& C. b! O8 c) V
        {( M0 c3 T* y- z& s( ?; k
                .active_low = 0,1 {4 [' W) x# A
                .gpio = DA850_USER_LED1,7 ~9 J$ F- S5 y' s* J
                .name = "user_led1",
0 e; I; n, {! h1 Y. b. [                .default_trigger = "default-on",
& q5 ?9 {# c, i  S) V" m' T% |        },/ P! Y, B" ^2 ~8 A& _: g
        {, W0 ^$ K. A" ~
                .active_low = 0,
% M3 ^5 X) I8 c) E4 A                .gpio = DA850_USER_LED2,
3 f3 \% W0 O- N, T  R2 s) A# E& N                .name = "user_led2",; y4 M3 X' O; |) J& y
                .default_trigger = "default-on",+ r, g5 K9 m, w3 T) a8 o
        },
: s) I. L. B4 U1 W. Z0 R. U        {
% A9 a3 q) ]! G1 s, f                .active_low = 0,
5 p! j& q' N: B* j8 a2 V                .gpio = DA850_USER_LED3,0 S6 P, e8 W8 w8 U
                .name = "user_led3",& E9 F( t/ r9 ~$ q; ~, w
                .default_trigger = "default-on",
4 F' Y' L' k* N        },
- Q$ Y" o- C$ I. t; D};" a7 i" k: a) M6 p9 l9 c

0 x' |. @# k8 J' t+ q4 Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 D" o; r2 S4 M' W( G9 x        .leds = da850_evm_tl_leds,
. M8 ?4 {; C$ ^' v  N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( P" p6 n6 s* F' c  _- F  O; J
};( y$ Q3 F! h8 @3 n

$ Z7 t) f; D% [4 Xstatic void led_dev_release(struct device *dev)6 |5 ?8 z) @4 D, V, Z, @
{* J, r; Y, O$ R% P" k; D
};  ^6 N( Z$ @) u! Q
6 v. }  H$ ?: K. m8 N, T
static struct platform_device da850_evm_tl_leds_device = {* @. `) |0 E; e3 q
        .name                = "leds-gpio",
6 U1 a* t6 m$ P3 g        .id                = 1,
- [0 F. ?; h- D( g/ x        .dev = {
4 `4 Y2 U0 p) p! ^  X                .platform_data = &da850_evm_tl_leds_pdata,
6 a6 j, y) S! Y4 r. w                .release = led_dev_release,
6 s5 V  Z, h& ^, D        }
+ j6 I$ {+ [3 s: I  r+ |7 ^};
# q- M4 C, m- i2 q
9 t8 e* E7 Y9 k# \. o2 s- zstatic int __init led_platform_init(void)
# b) q+ w, E# k2 T" c' \{
, T  u. s/ M. [3 P2 {( f3 T        int ret;7 z0 r6 x4 l4 W% U" _% y; F
#if 07 P  o8 ^$ Y% P7 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( c9 |5 S! Z' i, R: r2 U; M6 g8 ~4 F, H) ?        if (ret)
0 k" x4 Y! U  H5 H8 j5 L! h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ Y% a; D/ m+ g                                "%d\n", ret);
$ }1 m* M1 E7 O" g& j$ S+ h#endif3 o8 \1 R: ]. Q; X
        ret = platform_device_register(&da850_evm_tl_leds_device);
- j$ B, _1 g4 r0 \+ t        if (ret)6 ~8 }2 L* {) ?2 m4 Y9 p& k
                pr_warning("Could not register som GPIO expander LEDS");
) R5 ~3 V' O/ \6 y; S$ z8 u, ?        else
9 ~* o- m  K8 H4 s5 [- n" t9 U: M                printk(KERN_INFO "LED register sucessful!\n");. J8 L6 v! Y1 q. V& ~

7 e, p0 E  }1 R( z' x3 c7 V( o        return ret;
$ D- e) j) k0 S3 K6 x}' W. P; W+ f8 i8 E* ?
' e# p( \' N9 f1 W- U) C2 y
static void __exit led_platform_exit(void)5 A, u$ G( p( ^  e
{
  k+ A" I" h: @! E: _  l) T# S& y        platform_device_unregister(&da850_evm_tl_leds_device);6 t5 C: Z2 c' A
8 c, U' Q) ]8 X5 L8 B* I
        printk(KERN_INFO "LED unregister!\n");
; ]( P% H8 I! g5 o5 \& @}
/ n' s9 a3 e0 Z4 N5 I
6 D: ]. Q, J, ^3 C% {  \module_init(led_platform_init);5 y4 j4 t- C- G5 M
module_exit(led_platform_exit);1 [5 t3 N1 Z2 u1 w) y/ H, b
+ U' }6 R( {# |3 x
MODULE_DESCRIPTION("Led platform driver");% i! M6 h4 a5 z2 ^9 h: |  Z) X
MODULE_AUTHOR("Tronlong");
3 h5 w! Y: D! N0 M' {9 Y& pMODULE_LICENSE("GPL");* R( l# z/ z% Z0 Q

! m! }5 G* Z  c+ C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 23:04 , Processed in 0.040556 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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