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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
% P. n3 j5 |! h1 v" ~6 K4 {8 {, _1 \0 B- j+ ]% D6 k& v
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的1 N1 r6 h, T/ y) q+ {& Y' r2 k

' w7 g  @$ R% x2 ]4 l( I$ L之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
$ v7 l3 Q0 J* m% {
( T+ ?, C/ A9 H: ~& T- {- U

本帖子中包含更多资源

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

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

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

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

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。) X; D: g. x& P0 v
http://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
& ~- t3 c( h1 z7 l$ H您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。6 I  u; e. |( o! U" M
...
! C" h/ M. i$ D3 Z
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
, [% b' ?: T4 R0 F

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14! y5 c& m- h& h" K% T
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

0 t" d8 t9 L  i( ]- L2 E. Z我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
: g9 G6 H, u- U4 ^5 ^; }#include <linux/module.h>
, N3 }9 ?0 u* g' p2 E
: V% O' G' W  c7 }& [#include <linux/kernel.h>
" u% T- E7 d# w3 u3 P
* U; F& z4 G" b3 N! F#include <linux/types.h>  w9 F% |. U. e0 C
2 G* g/ A6 E8 l  ~* K" T) D
#include <linux/gpio.h>/ x' `9 R  A# z1 I

9 T0 Y" [) ]; L- g) f8 u! C#include <linux/leds.h>
) l- k5 \' f" w" r3 B: H/ e4 i0 T( @5 M/ c/ e( s
#include <linux/platform_device.h>. S1 j! w/ `5 J

  J; r) E" W# n1 l1 [/ I' t5 M6 S. [1 a* v6 u8 a/ @
- c, O1 ~! `. Y2 T" t. I1 }
#include <asm/mach-types.h>. H' o4 w) ?- |8 f* B$ @

. b9 J" D! k' F; l$ `#include <asm/mach/arch.h>' t& s4 E$ C2 a& ^/ i1 y0 [  K

- W* u  D, Q# q! J: ?  E#include <mach/da8xx.h>
) X; l1 O/ [- M5 J: ]; n4 h8 c7 }( S; Q& Z2 N) `/ X* M4 O
#include <mach/mux.h>9 F! ~* T  A, D) g1 i9 B
# N  W' Q& r9 D4 Q. Z
* R" f! A, s) r* M  M9 W: X! y

5 r# I9 t0 r, h+ R% J* N( w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- N, k( I) V% _; L( b  x
5 h/ s9 u9 ]2 C# W6 M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! d8 D: C7 E; s9 t: {+ D6 g4 ]3 {. Q. R" j% @) Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 S9 T/ ~! D9 v

, v: u. n4 L0 o! ]/ T  n9 H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- V: r' i/ ?1 Y3 d/ Z& s, n# O  [2 w( y0 `( D
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)$ _- A7 y4 m; n) D: ?( {; I

# W. i5 K& e2 t6 i# S* t#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
* L- O0 p$ |5 d4 y- V5 `1 V! m; I6 D$ F
0 g9 i8 d7 ]* v( W0 r* g$ `, `! u5 _9 I+ g8 C) T* P7 p  Q8 ?

' {1 J8 w) i6 I7 m: p- V/* assign the tl som board LED-GPIOs*/% F1 I1 Y7 T  r5 \$ p7 c
9 x9 [+ ~. x" {- i0 `) G
static const short da850_evm_tl_user_led_pins[] = {
3 a8 H4 V/ ~+ f  l- _# t# Q# D
: c, e# C: o5 w4 b" g1 ?9 T, M        /* These pins are definition at <mach/mux.h> file */
8 e) f5 Z' v) ~* ?, r+ f9 C' }5 C: }' z7 w3 p! C1 S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
) S) [( P7 o' ]1 x  @
, \7 M( [4 z- {- L% b9 u5 ]# s. n% Q        -1, I/ N  f) s- g: \1 o2 S

8 b3 I# O' F  E# Y$ i};
% |) p5 p" I- y, j' c( Y1 p5 K
! ?8 u' v, S# g" F+ S1 P' I6 f' d, v6 j4 k+ Q8 f7 u
0 u: `4 x( O/ Y9 M- j6 f; ?# K
static struct gpio_led da850_evm_tl_leds[] = {5 v6 W6 E& G/ e9 e

/ B6 }, r4 v; z2 Q! q        {3 V0 U2 G+ W2 o8 v+ _4 V5 ~
+ J8 H) K7 h- p' |: `% O8 r
                .active_low = 0,/ \0 W7 x* k- H2 J( O2 s: q
# n6 J  `  G7 A: S2 g; W% m2 z
                .gpio = DA850_USER_LED0,, p" I1 f% `1 D: ]' _
" X* \1 [4 q  W8 ~: d
                .name = "user_led0",: E% q: U* y4 @! z% ?, F$ D
, Y! D  J( z; I) C8 e4 r
                .default_trigger = "default-on",
5 t5 l+ V. [( A" R1 C: q0 n3 q4 {+ A8 ^: H& O- [( r
        },
2 \2 b9 }6 A0 x6 P" O0 y: P; z; l5 r3 l; ]7 A
        {# [( p7 l! ^- j( C

+ p. G0 N& D; T. R2 M' w4 h8 @                .active_low = 0,
' F! \) b+ P/ T$ J% G9 j' x: e- D' s* ~) g% t2 |5 J
                .gpio = DA850_USER_LED1,
2 {4 T5 p  U: z: a$ w" G
+ @& I2 D' E2 Y' o+ i5 z                .name = "user_led1",
  D' D/ R) V, H# O% z7 n2 f- ]& a8 M/ Q) Q2 w
                .default_trigger = "default-on",
" G. G0 a, ~# \9 A/ j1 o1 {8 w
7 n7 N) c1 h' C7 m        },
  C' k2 v( v7 p( j! a6 g) I! R3 ]' s" ~% v0 X5 @; h6 K+ `
        {
0 |' M0 h! l1 T% e" P8 a, F9 M$ F6 a: G, D+ |* U" Z
                .active_low = 0,
7 L8 j5 y. i0 j. c1 g% d7 k8 Q" c
( H% Z2 R7 H: O$ g$ U                .gpio = DA850_USER_LED2,  N' m8 f% n7 l) |

' v: R9 ^  |# j/ @                .name = "user_led2"," `9 |4 v+ \7 u( F6 R* c

, P8 k0 v" n! _' \- G# K0 c7 s0 J                .default_trigger = "default-on",
+ P4 B9 y% ~- O! D2 C" Q% l- F8 n! ]9 K7 @4 O( L
        },
% D3 X5 {1 U6 J: e+ {7 v, [6 J  q7 X1 b! x( I
        {
9 g3 B( [- T7 \/ i& a# g
/ A, e3 v) A( M9 c- R3 @8 g                .active_low = 0,' \5 M6 r' R1 }
( s; c2 t9 _& K9 ^' r. y4 i
                .gpio = DA850_USER_LED3,
/ x* R- V5 l) W: n/ D
+ b1 H  `( `" c0 v                .name = "user_led3",
( m+ i3 t# g0 ?1 [+ x: m# Y
0 b. A* N) }  J' r8 Z/ K                .default_trigger = "default-on",
# b1 X! a- _: s# H9 \% H  _, _* x' _# T$ ?; B+ Q! e
        },) g, N/ P1 ?' {3 a) O. L
/ p5 K0 u7 Q7 C( j; v
        {
( Y2 d% a: L8 [8 ~
" L9 K' F9 B6 l" Q4 z  D                .active_low = 0,
, X. f6 E% w3 S' Y: S3 z/ o; I: k2 z/ o! g
                .gpio = DA850_USER_LED4,
$ ]) E' D/ ^) x" ]" ^
% h+ C  E, f! x3 Y* s                .name = "user_led4",! W9 K. M, X' j
3 r% j2 D) g. k2 s
                .default_trigger = "default-on",
2 O7 |3 {, @, b7 Q9 o% R
0 ]  w# q. N8 X        },
6 c8 c5 u9 ^  M
' L7 T; k% Q% c; l2 |        {
/ B% z, X) W$ \7 i9 D9 d4 L
: Y0 [$ w3 y- v                .active_low = 0,
% f: x* }/ q4 k" m1 s
% D2 E, ]. ~, H- ^- x- N/ F                .gpio = DA850_USER_LED5,! g. u/ l( O/ B' O6 V3 ]) ?

$ {9 F/ N4 c2 m) [  t' `# @                .name = "user_led5",
% C$ ~5 _8 I. P0 W" c; @- ~- p
! C' ^8 y! N+ ^+ o  q1 B                .default_trigger = "default-on",
% p! a# [2 x$ P1 v
4 h+ Q" B4 ~0 ]        },! [# v! [. l/ h
" P  w- e! k; ?& {
};
9 X' X4 R, ~1 j+ H# d$ D) D) `( s2 F
& r- O% K7 N  |0 o/ U) I, y; k) q+ O# a  N1 U0 D( E9 U" a& ^
  W, e4 t8 r( q0 n! d" k. I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 x/ N7 K3 f9 {/ ?0 w9 L. y

1 c. s% d5 R$ \6 e        .leds = da850_evm_tl_leds,' m% z9 V: v, q4 `

! [( ]# m, f  p# L2 o4 W* g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  L2 I# P4 u- c( H+ i
8 w! I, O& C1 O. D5 b( _0 P4 S
};
6 Z, V9 w1 y3 G* _7 a
/ F. F0 V  @+ U/ C0 S% R- o2 b# H

4 X' i$ E6 Q! f, Wstatic void led_dev_release(struct device *dev)
9 y6 B9 r, ~; r, ?" Y" B
# e& H4 B" Z# f" G3 n' T" W{8 E$ w& k# O9 X0 T

; n$ `- ~- m3 `9 d$ T};
" `) w( V+ V. E3 A1 j4 N- t: b0 {' [: @8 M. b) V3 Z
; q( G8 K2 d" E0 L8 X" _6 c$ G

- y' w9 f! G2 ]6 g1 }+ x7 Rstatic struct platform_device da850_evm_tl_leds_device = {
! ?# z- g1 O2 m, ]1 u! S! `8 O/ M0 r1 m& j, {% }
        .name                = "leds-gpio",( G6 m+ f( {8 X, q$ P) C
: h1 Y2 q8 N- H$ v" K1 P$ d
        .id                = 1,, X* a+ E6 I7 x% T  U, K

. n' F9 W6 Q" q0 g        .dev = {
; i1 a5 R- _, `( M2 i
, z8 Z3 @3 ]  t. G/ v                .platform_data = &da850_evm_tl_leds_pdata,
4 v  ~: p$ w" [" }. a9 V
; d% {& a( @+ ?. u' L& r+ q                .release = led_dev_release,8 D# z. }- A# Z6 _

8 r0 M1 G" x' I( P  v        }
2 H& |' Z! ]" o0 G8 A7 |! O) D7 ]
};
0 K6 o6 Q+ ~3 _% d1 Q3 X! K4 X+ B

! Y) I0 K( T# Y
; w4 a5 ?/ E/ \7 y' ?static int __init led_platform_init(void)! \( {- l! R) C& g$ }8 y
5 L+ u6 s- I: D/ u/ m/ n8 m
{0 u8 S# J! I8 N) E2 @0 g+ |: J

1 S' _- z% C5 C+ y7 G        int ret;$ L( y9 y( K$ D+ M) D
! X# \# n6 E) R0 J
#if 01 a; h' A" o4 @, y4 d! W% s1 S
* K* |; |6 e  f! c# D/ D$ J, k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% l/ W, b8 a( V* n! x" f

2 l& X2 [& J5 G  o% u        if (ret)
% g) s) j) x6 A0 R. Y5 e* n; N5 E% I' w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 O( t1 ~8 m% K- X% K8 |" x+ `" c" J$ S  W3 t' S
                                "%d\n", ret);
7 i+ v8 L$ q+ h! C4 }5 ~1 V' e
2 v% F% i% d$ a* k" U! b0 P2 s#endif9 [) z+ ?3 J# @5 @9 G# V2 x

" e# p" Z2 F. ^1 F" ]        ret = platform_device_register(&da850_evm_tl_leds_device);
6 e5 `& g. R7 O2 w! y1 `6 _
! `2 w% \1 f% N        if (ret): D2 x9 E: B  z: Y" k+ m; A
# [  ~/ Y0 t  K1 P
                pr_warning("Could not register som GPIO expander LEDS");
" G8 i8 \9 s% |& j1 _- K  P, `& m1 U( \6 v7 i4 y% t& H
        else9 K( ~5 s1 ?; V2 f8 ]4 V
5 _( U3 _5 m  ?7 H% f4 D
                printk(KERN_INFO "LED register sucessful!\n");+ f! E; |' _" e% u: T/ n# E3 E
! S% M* w) C) Y& V2 C' \; j2 h/ A9 G. V
5 Z( d0 X! i1 f, A( \9 q, U7 f0 ~' x

. q8 x, U- P( k+ v1 X0 ^7 U  T9 e        return ret;
0 c0 u1 D( S' I) @- O$ U6 [
& [1 Y: h' M. v9 C. W$ ?* R}
. N( }# h& ~: B* l# J$ r/ ^1 Y2 a1 d0 _0 C& J0 D/ i9 \

, ^5 _& x- ]- |: J& f5 c! E7 b) j: h/ T+ w
static void __exit led_platform_exit(void)
: m% ^9 m! N' B) i. g( F9 q5 L) @) C! R5 z( D$ W5 M# A" G* X
{8 c. W( A5 X2 O' t% C6 n. a

2 ?* Z; M7 x% ^2 }: v  A9 L$ J        platform_device_unregister(&da850_evm_tl_leds_device);
$ m7 a+ r: O* N, }" g; W/ A2 v2 ]* O  U
5 F+ \1 b* g4 ~) k/ O" B* I

' E7 v5 v  j- ?  a+ ~7 }        printk(KERN_INFO "LED unregister!\n");
+ k+ A$ \5 r% g2 z' F
9 `  c9 d9 t' j% o. Y2 y0 L1 o}
" Z% h# w: l9 K- a2 A# {  J" J& T5 ~, ?5 z; W' H
$ E0 i" v4 `) m
. ~5 w9 }( j2 \) K
module_init(led_platform_init);
: \; E  v6 r1 [$ x$ S$ r& [; q1 q/ w  p
module_exit(led_platform_exit);$ S* K$ S7 }+ D8 F  w' `

$ W: h! A5 B3 C
0 @+ f- h, e+ G) K6 U5 X9 Y" E' c0 k$ Z/ q
MODULE_DESCRIPTION("Led platform driver");
1 o! p. x) d$ m
5 u8 l! v8 K) x1 c9 \. A0 y0 FMODULE_AUTHOR("Tronlong");
. m$ E1 w- B/ r+ U8 u* {! |6 k! W: J, U
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-5 10:06 , Processed in 0.044740 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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