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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* |% x$ Y: B2 y8 g3 ]% o" a
#include <linux/init.h>4 _' p2 q. y+ \$ a  D% j
#include <linux/module.h>
# g$ L) f# P9 ?. l7 A& E3 X( B#include <linux/kernel.h>: O; T7 Q- y/ `
#include <linux/types.h>3 y$ ]( h6 g7 r$ [4 m+ G+ `; B. l
#include <linux/gpio.h>2 y/ N  e) c) k2 F) g/ ?0 t
#include <linux/leds.h>: [& j. n4 c0 z/ L
#include <linux/platform_device.h>9 v  S8 d' b* S6 I
% a: t* a( k' ~4 Z+ D0 s  R$ o& N
#include <asm/mach-types.h>
  X$ e5 A; l. |9 P5 G* ~#include <asm/mach/arch.h>7 y4 I6 p( M: i7 I- e3 o/ c% e( @
#include <mach/da8xx.h>
/ p9 w8 X" C3 s/ F#include <mach/mux.h>
. u; P$ W2 I+ ]: O
( R( p$ z3 g, A% n( a# T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! G0 {* a" P; |/ z3 @, }5 H# l9 c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: F& d- o( R9 i6 ~' i9 D8 V* d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% E+ j% l& i; e( \( e5 U- n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ |4 U5 F$ y% M; C& b* d0 A$ [5 v* N0 H) j, E
/* assign the tl som board LED-GPIOs*/. n+ E$ ?+ B, C$ O; k* ^+ F3 K
static const short da850_evm_tl_user_led_pins[] = {2 }3 f4 B9 S' S7 I9 W" {
        /* These pins are definition at <mach/mux.h> file */0 m2 \+ W+ Y& F1 b7 @) W
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; ^8 s5 ~& }+ p6 F1 L9 {1 U
        -1
0 V/ a, t, p( V; o/ ]};
' q6 r. N- P! `$ N; ?
8 Y# \4 F" f0 I& e9 D8 [static struct gpio_led da850_evm_tl_leds[] = {; j# v5 q. A  ]9 r# E3 S! @
        {
4 @3 R9 m' E$ D8 X+ t                .active_low = 0,' j2 G) X3 r0 a+ @0 B+ D4 |% ^
                .gpio = DA850_USER_LED0,
  ^5 ^" T. b$ b( }) M3 q                .name = "user_led0",6 u% m# `  U9 [
                .default_trigger = "default-on",5 D6 Z8 q) o2 {4 ~2 S
        },& h/ x. r: O- X) ^4 U& ~% B0 s* h
        {4 ^6 Z( e% i* q4 ]9 O7 J* p
                .active_low = 0,8 s: y; \9 P  V* r) C" B
                .gpio = DA850_USER_LED1,
. S3 Z/ B( Q3 e( Q9 j1 D                .name = "user_led1",8 _( x( E" U$ Q# I7 q  F
                .default_trigger = "default-on",8 ^' V. ~% g3 o; \6 N  U0 v
        },/ `( q2 @: c# S* U
        {6 f$ R4 @% ^: k# C, j5 o
                .active_low = 0,
% T+ x6 S, b0 {( F* l9 B4 q                .gpio = DA850_USER_LED2,
0 T" N' W6 m3 ~, g& r                .name = "user_led2",
. |. ?& S/ a# s                .default_trigger = "default-on",$ `8 d" T4 @$ _* Z
        },
! j, K; R) V+ Y- M& c        {
* H+ K5 }7 e" D7 Y5 q& {                .active_low = 0,2 r; y* v" ~: h  y" ?" s
                .gpio = DA850_USER_LED3,7 f- D/ V  a7 d0 v# F1 A2 T
                .name = "user_led3",
- U; |2 r  @$ h( C3 _* L; g5 G                .default_trigger = "default-on",# C7 z3 Z/ Z; S
        },
8 u0 c+ `# x5 A0 B. T7 B/ U};/ [1 A8 X" W! W/ Z

6 M/ K1 _" L- x6 @5 j% Y8 M% Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- U% ]! N& G2 t+ M& F9 A
        .leds = da850_evm_tl_leds,
! m& Z$ A5 ?. W7 u" c3 ^- W$ Q# w5 E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 L8 l5 J* i4 H8 {) ^# |: _4 u, l};
8 e: ], Y" R/ [2 a( w0 `8 j
7 I( t9 _3 V2 N0 X4 K) z/ istatic void led_dev_release(struct device *dev)
" l$ I2 C, r$ B: M7 e* ~' e{2 w/ s3 q8 B( k3 q& w1 z, I5 a9 S2 b
};
2 T) t" C$ c& \! }! k7 K  T$ g7 J0 C8 z" m2 _1 P: x# K
static struct platform_device da850_evm_tl_leds_device = {
, Q8 o" f# O6 z) }( b% I/ N5 |! z        .name                = "leds-gpio",
: V+ z' a- j) E" E6 L        .id                = 1,
& W3 c- u/ r7 D        .dev = {
. B, a/ H( k  D9 R6 d# T                .platform_data = &da850_evm_tl_leds_pdata,
" L: u: t6 g2 t- h5 F* y                .release = led_dev_release,
9 J3 k/ `: l% [- n        }9 n2 ^# T# {8 P
};
; A* O5 t# Z# O/ y! w7 L
% B0 o6 z) F7 F% p) ]) ~8 sstatic int __init led_platform_init(void)
; r+ U0 @4 z4 g- F& Q- H{
& c% h# v- n- R4 x( z& T5 g        int ret;
& |3 Y  h: {' ], U: r( K; v+ V! f#if 0; q0 L/ J2 j/ D; P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# Y7 i8 C9 k6 W0 c
        if (ret)+ B3 H5 r: f. a+ z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; h9 r3 k8 F7 }4 ^
                                "%d\n", ret);
& z/ Z7 f( _) d* J#endif
8 ^2 k: j3 r' S! C$ n. M        ret = platform_device_register(&da850_evm_tl_leds_device);
! s" _, q1 t% _% A' M& ?$ @        if (ret)3 K7 _3 u: M( g8 X0 u
                pr_warning("Could not register som GPIO expander LEDS");2 J' o# A2 P9 L8 s7 T. k( u8 q
        else/ R  c. P3 g" l7 A
                printk(KERN_INFO "LED register sucessful!\n");
5 y2 k, ^9 c; h" f: ]5 f
( Y, z. d& P% d- l- d! X2 A" a6 v7 o        return ret;. j7 N; v! _" e/ y* I2 n; ~
}
7 w/ Y$ a" ^/ [; `( Y7 {& ~# J) |% ^, S: D
static void __exit led_platform_exit(void)
* e2 [7 H! T- q' ~{( x+ d1 {6 \6 X3 d
        platform_device_unregister(&da850_evm_tl_leds_device);4 H. T5 n1 u4 N& z" R
! d5 e' `9 Z- X& Q; b) o
        printk(KERN_INFO "LED unregister!\n");
9 D6 W# B' w6 C& u( b. k+ A}
8 c$ [  M, @: ]) L; Z1 N
4 `0 T8 R4 o5 d- ]; @module_init(led_platform_init);/ q5 S- b' b$ [
module_exit(led_platform_exit);' j: v: ]& B4 i

$ S5 q$ Q, x4 gMODULE_DESCRIPTION("Led platform driver");& f, e* s; Q9 l6 Y8 b5 X
MODULE_AUTHOR("Tronlong");
. [) A4 u6 X* v: D* }8 |MODULE_LICENSE("GPL");
9 v- w9 j( e/ P2 i6 b/ W9 n# l0 P+ h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 18:58 , Processed in 0.039091 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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