程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5893|回复: 6
打印 上一主题 下一主题

[已解决] 程序的运行问题s

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
# |# ]2 Y3 o; y
8 b$ a7 P/ e* \2 k0 S' D请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
" M. K$ k$ s6 H+ _& h( H, ?& b1 ?9 U5 @" B- J! p+ c( v( y
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?+ ]" {  G$ |4 P+ [/ A6 b

4 b  [1 S4 M$ m5 A

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
' e( l. E5 h3 ?0 M1 }* Tlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

; ~8 J6 f7 m+ u" a我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
( [, T+ v" s( ~5 M5 m) [( E#include <linux/module.h>1 Y% ~1 b& t1 t& x7 s' _$ w

7 N* g6 u7 e. M; Z3 u- E+ p#include <linux/kernel.h>- h  ~+ @" u" }2 e' u+ ]1 E
' N% [1 |: `3 n* l. _
#include <linux/types.h>
$ g* g8 g& p) |! U! R0 i1 _
+ d- W/ ]: p, `( D1 Z" d#include <linux/gpio.h>
* l- Q; t: P: d7 `
* @7 z7 Y2 d: E: p9 i#include <linux/leds.h>
8 C, N& y3 B1 L
5 t, h  C; N" H$ V& x: g% Q#include <linux/platform_device.h>
) \& z+ \6 u; ?" D7 r
% G& f( X+ c! F
3 Q9 T, P3 g5 i2 U+ I$ w$ e+ V& ~) z6 R/ v# l& G! e
#include <asm/mach-types.h>
0 d, Q6 M) w! J4 a1 ]. X. r
1 n/ g# |( U4 A) j1 g! t' o#include <asm/mach/arch.h>
% K" C: @: u, B" l0 O# J  Q7 ?6 J2 p( r4 P
#include <mach/da8xx.h># S& b3 |: w5 L& t9 k( Y: Q9 {

6 G: v1 x' C7 L, y#include <mach/mux.h>8 u% `* A. O: `9 F
) q! p. v4 u0 @
7 R  ^9 \: T* i4 y
% D/ u2 q" [; o; ]! @: U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& K2 N6 V( Z7 N, N- w: c5 V! a! n- z) A' v5 d6 ^( ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: {- |& |7 T9 _3 N* e2 {6 }# D
' t: j  \; }# h7 A- Y' u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 \/ r, Z1 q1 N, ^& q

: m6 _7 v) m* n& T4 q- b/ s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% F8 I; ]7 [2 k
/ s. P' l; O/ D" t8 h8 E7 E" ?#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
2 P  Y7 X1 \0 \7 F$ x1 t4 X  t1 V# X1 @" K% e
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
& m& a! z0 M2 E* p# E
6 P# o& I& S9 K, }: b) N" T* B9 L$ ^- I

: S9 U7 _; `/ X; }. \/* assign the tl som board LED-GPIOs*/
( b- G3 ~) u+ ~! B. ^1 p2 K3 I/ s! D! T" x
static const short da850_evm_tl_user_led_pins[] = {
& p* T9 p" g* n3 J& Z6 _$ q2 o1 W3 ]+ b( K4 J& \, w
        /* These pins are definition at <mach/mux.h> file */
9 I3 c9 r% \/ m; S3 E
. _, u3 ?& Y6 N+ C! q) m( Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
3 e/ O7 g5 z% y+ N. h. N
- P3 Y9 Q/ j$ h* c/ T        -1. z7 q3 Y+ M, ?
( o' E( @( W3 _" ?7 L+ E; P$ u" H
};
4 l; \; c' M. z
) r3 }+ ]+ W2 H5 w: h% h  [' w' U& x0 s+ \2 Z8 Z; m
& h! h5 s+ C) s, j- a
static struct gpio_led da850_evm_tl_leds[] = {: _4 D" _0 c  S0 }/ N
* ]7 `( H2 p9 u3 U8 `+ R6 ~
        {: m4 r, R, J! X5 _2 D( p
" w3 z( k( f, x$ [
                .active_low = 0,
$ {# ]8 ]% ?6 v8 [% u! j$ g" a; u
                .gpio = DA850_USER_LED0,
7 s. V4 q# I2 V) X' }- @  `" y* e7 g- ~" d! n( E
                .name = "user_led0",# G) @( v- `8 }8 |: }* v

2 Y4 D/ t9 h# ^: }6 Q9 g                .default_trigger = "default-on",
1 t1 ]7 o* H, W. c+ w4 R  ]/ N( \! r0 X, z# ~
        }," e0 A  G1 r+ M# V' R/ q5 r

# c6 ?: v. O1 Z. y6 e0 x! \        {
$ Y: u- W5 g1 a6 n$ F! h8 y( v+ d* H- q, \( t, r
                .active_low = 0,
9 D- d) o( j) D" S. d% X- U/ P) O; s# w% I; _" E
                .gpio = DA850_USER_LED1,
2 p2 k0 X1 U0 f
; D* E& C7 E6 T5 r7 O1 I                .name = "user_led1",! v2 [" {9 `/ e/ J, n

. v8 v0 [2 j1 M; q: d                .default_trigger = "default-on",6 H$ y/ B7 K6 ^' K

6 P  ]& K! ]  C$ B* i        },
) O3 H% [; C) q  z% q$ o) B4 P0 L. ^6 F( \' s( {, M1 \
        {/ p7 x7 e  @; S

8 c/ v: z% W- z: e) D1 F                .active_low = 0," S! `# F  i) K2 W8 ]- W
) `( M) L' y) ?( ~4 z
                .gpio = DA850_USER_LED2,8 x5 x( ]8 S8 U

; m: S" o( s+ \- Z1 W& b/ I                .name = "user_led2",
6 M9 k$ J: b1 P) C3 O9 _  f( r
4 P" s& }1 a' \  r                .default_trigger = "default-on",8 O) d; T& f4 W( X/ U

' j; |) l1 {6 f' u        },
1 r, n4 X- L* ?) p4 h, g  M, q6 W, ~' h) ^
        {* A7 l/ T( E0 \
# I/ ^0 Q. L! Q
                .active_low = 0,, h  n) ^+ s4 T! x/ |% k

1 M; J9 s: m- f% z* u' x9 ^  T                .gpio = DA850_USER_LED3,
# ~/ b$ a4 E7 J# g% i& ~* ]1 ~6 O6 E% `9 [  E" M
                .name = "user_led3",
6 Q/ E: r5 D, g9 x- N7 n
; N) G4 i+ T* ?# n# e                .default_trigger = "default-on",
1 C. g( ^5 K9 C7 ~5 `9 M% `! \0 p6 q# B9 Q  _7 k! j% S
        },/ q/ \! t( ?. c% b2 z: n7 |

+ e. B3 ?) I9 d% _  c- a/ b        {
- E% N- |& E; s) W; C0 p& [2 ]. w! {
                .active_low = 0,
) Z) a" Q: j' o
9 `8 Q3 Z# l5 j: Y7 g3 x/ B& J                .gpio = DA850_USER_LED4,+ @9 ~' I5 k  @, Z" D/ e- O
' J  z) [' Z- s% i$ y1 e& [0 E4 W' g
                .name = "user_led4",
) x' [8 S/ i/ _+ x( L) r; t4 \- `9 B# \2 E8 H7 x
                .default_trigger = "default-on",9 K9 R, S' m0 K
9 ~& E, \- B0 p% L0 i: G! F
        }," A! o$ ^9 [6 `& g' }
6 K! W1 k( A; i2 O
        {
; A  b* K4 u1 J+ f% i
# ?+ Z. r" P0 j: a" m1 V" G                .active_low = 0,
% k& ]1 K- t8 U. K0 G# U5 V5 x2 W- a: `6 Y! [; y* ~- l; t
                .gpio = DA850_USER_LED5,
$ O8 _, H  K5 \* m" F' b
% c7 Z3 o" j+ U2 B                .name = "user_led5",
' Z2 {- T# L3 }2 ]
, p3 I* |2 W5 Y* Q                .default_trigger = "default-on",
/ x! M) o1 }9 j2 W+ v8 n1 R1 |" r+ u* S8 E# G! I( ]: C: S3 m
        },6 g- P# A3 E" H
1 J7 s0 q# w' m5 S2 c- H
};
2 [0 k' z9 R# N& |) G0 w
# \! |4 S1 Z( }) f# U$ `$ s, d; a, Q+ g; a
& h$ D. T! S9 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ q; `$ }& D. n
2 B& D4 K6 n) I" E+ x        .leds = da850_evm_tl_leds,
. S  p% M5 F- }- a5 n1 ^+ `4 @# ?$ w  Y$ q0 D1 u' q2 w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 A  M0 i' g$ O: H
9 t" K8 ]  b: _* N2 d
};% y  T" h' E/ h/ }; |) P" P

+ T; [. ^4 l5 ~. m
' b& F1 [1 d4 S$ T: M4 C1 d" C$ f- O, z, f% U8 f
static void led_dev_release(struct device *dev)& h- R  }/ L& F# }0 X9 t  i* \0 D
5 _: q4 {& x( X
{+ W, ?  }9 Z2 O& U% e; S

; i. N5 ^/ f* C! U& a# [0 K& ]};
1 P  }7 X- m% E( E+ ~8 s' R4 L
# _3 t  U, t$ S6 i% D7 X5 t4 i9 S1 g! z9 n9 X

( `: t+ d5 K2 H4 A7 j& L' Zstatic struct platform_device da850_evm_tl_leds_device = {* v8 `7 g& F$ U5 R
3 N( `/ i2 q& v
        .name                = "leds-gpio",
) \! m+ x, L, d4 R
' i& u" r/ t1 L" a: C' O        .id                = 1,
/ v0 ~6 o' v! d$ v7 N& N) u1 Q8 q- C; K& T% `; p
        .dev = {
" J1 {8 @7 `4 u2 I. Q* v8 d- M: b! q) s$ |* f1 K2 z$ W3 C% z$ w" u# C
                .platform_data = &da850_evm_tl_leds_pdata,( q  B9 E. h, J& `8 I! X

4 R6 d: q* L1 y/ X; W                .release = led_dev_release," ]: w% s' t7 c% C" f, n

; L4 S0 l2 q" W. D  X9 O% e        }' t) V. o1 a% L; j) q/ J$ h; r
1 W( h3 v1 J! d
};0 E2 ~* p: {; E* o& g

8 b+ Q6 v$ ~3 v3 j; z7 U1 H6 Q# {, V5 ^

5 T7 F4 h7 H* c3 s# n* V4 z2 xstatic int __init led_platform_init(void)
/ t4 K( K: Q& `# Z6 q$ f: Q1 F. ?3 K- |+ y) `. z+ n' z
{
' t8 m  Y' s+ x  @
0 A8 o. k$ h/ f7 ?        int ret;, u/ V% F+ h+ v; B* M6 ?

' L" ^4 D5 K, x#if 00 _* m, T, S/ D6 x% l' _

5 F9 z0 K3 H3 v) u" H- b2 Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 V, M) G! T; y' Q: l) i$ q8 c! A1 `- G
        if (ret)
" r6 m# k: B- X# d: u( i- J8 z! z; S4 n! D3 T+ O, W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! b7 E" I6 `8 {  o$ R- {* C( y

  X* W; m( X+ E  ^6 C. t                                "%d\n", ret);; G% z1 y" x' B& u2 R7 @
& e& N) h* t# V8 Z5 G
#endif5 ^8 @+ M! k, i

- T7 `5 {! ~+ H" e$ g" h        ret = platform_device_register(&da850_evm_tl_leds_device);
+ D0 c; X  v6 t9 Q2 J% m7 \+ M8 J& x) I: ?! F) C
        if (ret)
/ Y) e2 |' i" H  b8 V# O% K, P+ {
                pr_warning("Could not register som GPIO expander LEDS");
! E% S2 R. F: |- c) E6 ^$ f9 D2 z. o8 c; ^. _$ d! |! I
        else9 Z' a0 X0 _2 Q( {, n  A8 i
2 J1 J* r  Y, k; h7 P3 M9 O
                printk(KERN_INFO "LED register sucessful!\n");
" c! ~5 ~5 H- W& }$ F: ]1 h0 L& N+ Y- e! n2 `, O0 k: O

' k  ~# t% ^  i; F# `- a- Y. H- |: F+ ?& k% c( l  _
        return ret;
( O& Y3 R# `' W( m' w
; r1 v( D+ O% _' S$ V# B7 d}
. a( F8 B# @3 r& D; C, R
& @9 j. p$ v1 z' b9 N3 I9 b- c) d2 Q* K" B
3 {9 U* ~3 e: j
static void __exit led_platform_exit(void)
8 K2 v7 ^% D5 T7 E+ I5 `
8 d+ `' R5 u0 ^6 W+ Q; d0 I{
$ g7 b6 S  N  i, a& g* U2 R! q/ @+ m8 L8 K# Q5 @& s
        platform_device_unregister(&da850_evm_tl_leds_device);
2 C. H7 V, l2 H- ^4 k* ]
3 c  x8 w, H$ f4 P4 K7 h. s
. i$ r3 Z2 I6 ]& ]/ @/ p1 z0 K1 u0 Y9 \, Y
        printk(KERN_INFO "LED unregister!\n");
6 a# T2 |1 j. Y% g3 R  i
- a0 P  m+ r& A' L+ n0 {8 g}- w: u' j6 @; E" K0 t1 D! U8 M3 f

: t3 K( c6 i& Z3 g$ r; L5 m' _% a( |1 b8 |% D4 }8 o$ ^
- |2 S1 @+ b" Y: K. P7 ~
module_init(led_platform_init);
+ @/ C2 U* |& U7 w
. h1 H5 y  B# ]module_exit(led_platform_exit);1 s8 z6 D9 u& U; f. a  w

0 k$ g) x- y9 @1 v
3 Z; I0 u. ]: f) `2 r3 h) w# ^
7 Y: B4 H! ~, v# \# o% M$ uMODULE_DESCRIPTION("Led platform driver");
) f( A2 x% R$ }1 x3 e  ]
& t" F5 k' D1 |9 R: V( J9 _MODULE_AUTHOR("Tronlong");8 Y. _# }- |- s/ z, X; B& x9 Q

0 V1 g* T2 \6 \MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。' I$ {  I8 c: d+ J7 r

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32; T1 z6 V) ~; ]0 L1 H3 i5 |
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。' t( j! r, l: m( @/ a* p* C
...

# t/ T; H$ r( h, _/ v- l好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。* x! W  g. T. _1 {. A7 y
http://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
7#
 楼主| 发表于 2018-12-17 17:29:12 | 只看该作者
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 14:59 , Processed in 0.043699 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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