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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 ( G# ]9 Y+ j( E

, V5 [! p& t% K! \- e请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
  F" F  ~+ U/ x3 [
( `2 W4 u  a( x9 K之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?: t9 p4 M  K5 q5 m9 p

6 F* }  }: M4 L: m2 r

本帖子中包含更多资源

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

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

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
8 i' I! [& J/ W- U4 y3 D) Y* qlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
6 ~# ^' p& O# n7 K" Z% f: K
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:  k+ s6 F1 @  S, m" o
#include <linux/module.h>
( B* L, r" P1 s6 u. z2 q1 b- O$ a* l0 u
#include <linux/kernel.h>
4 T# W8 w* O- q' F5 n
# D0 o0 ?6 b, G2 t8 G4 O#include <linux/types.h>
* Y. A3 ^" C4 |" a' t" Q" o  ~6 ?9 f, @* m$ c
#include <linux/gpio.h>
9 U1 n+ F- E$ @) K: I( m2 r
4 P$ E/ y. O5 U2 z1 E6 s#include <linux/leds.h>
% Z$ Z  |' f( U# ^5 f" F: o, @- d! j5 [/ Q$ P( u5 j
#include <linux/platform_device.h>" R! \/ J/ r4 ~
" `  w- I; N$ v6 Z& c# g, T

& H  C% q. c. D" Q0 ~; ]+ Z& F6 L+ A4 \+ \" z& K  q
#include <asm/mach-types.h>
1 U' x/ p- u$ n0 D) Y2 ~/ u  l2 I+ ^
#include <asm/mach/arch.h>
9 K4 r) e: u# [2 H3 M9 ^% z$ k- @# |) Q+ [9 A  D' [/ d' ]
#include <mach/da8xx.h>
/ C, X' h4 I1 G$ c9 F6 c% M7 W  N% U* N  K+ a
#include <mach/mux.h>
7 M2 p% M+ H0 A( d: F/ O$ d8 J1 L4 ?$ U/ B) w, x/ h8 @+ S: j* ^- o' Z
7 d9 R; B7 y" o5 P2 k

5 N2 {/ q) L- M% V. T9 w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" W6 L1 `2 ?+ h' L& e8 W7 K4 r/ a, l& K* Z2 }1 _( f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  L. F( t5 t; f" `! v7 N% o6 {  M) E) K5 b; z+ `- W; W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- Y; d; d$ X) Y) u( S  O# \6 E/ ^' D3 X! d* \7 E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 T' B) v6 c7 G( l+ ~
# v( G9 u. X6 b4 c* H4 r#define DA850_USER_LED4 GPIO_TO_PIN(6,12)# }7 Z4 l  x, E0 c! w* K1 U
7 J- P) P) L8 J) {6 V
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
1 V7 e9 z0 @* Y6 {* H  e3 x
; e/ I% L0 }7 c4 ?) f' W
5 Y% g$ S" j1 [5 T$ q
! s+ Z) L; N+ ~5 h0 N/* assign the tl som board LED-GPIOs*/
0 j! s6 N9 g9 k, }7 s
  h8 g/ q: S" V2 }static const short da850_evm_tl_user_led_pins[] = {
- v9 b' m3 a" P/ z) _1 W/ v+ l& R7 w6 Z% F5 e6 x% \$ b! r8 X
        /* These pins are definition at <mach/mux.h> file */& W, L" m1 k5 A! n; @
) N6 L" a: p0 t+ }/ L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
2 R, U1 c& v. A) r. @5 E- w5 k2 T' m
        -16 u" ?% b& f! U- i$ c: n

6 x* O0 A5 p' f# |; |" R7 T};
( ~" \; \1 y- f1 C9 P8 p4 s+ R; Y* `/ d: R8 @

+ Q* Z. F) h( |% S6 L4 I: [7 [7 L1 U
static struct gpio_led da850_evm_tl_leds[] = {8 g7 A( V5 w1 J( W. b8 h9 R$ {

7 r1 p, s- J# ~; G        {
' e- i! g& F: `+ a, T; l  L8 E2 z1 S3 I+ _. z9 o' y
                .active_low = 0,
. p5 N. F! C! o3 {2 e. E/ x* b$ c0 B/ u3 [1 u  B/ b
                .gpio = DA850_USER_LED0,. u3 @' d: p! M. R" C  o
+ r$ F7 T1 D5 r- T
                .name = "user_led0",
& ?: d( p6 ]  x% ~. O$ b, U/ k4 F
9 g4 {) q( a( w* K* U                .default_trigger = "default-on",9 _/ e+ K' P8 H, X
5 v9 j! C& J2 Y0 A! f$ D4 K
        },0 Z$ H$ K) h5 L  Q" m8 S4 y

' j2 g2 t" B3 W3 R- R        {7 V0 s: d: w/ S, R" a0 F/ z

! c: ~; P# |; ^+ S2 o                .active_low = 0,
; S4 @. s4 l' b  Y2 J" n7 P) g8 Q6 X! ^
                .gpio = DA850_USER_LED1,
! R- d! p8 Q# B$ E) e7 [6 F
% C* ~7 q3 J  z                .name = "user_led1",
! N5 ?/ K  H& q6 C8 V4 X$ I3 n8 Y1 ^4 t) f: c7 ^
                .default_trigger = "default-on",
; K) O/ _* M9 I- ~) ~7 Y! ^, H2 J6 W: I" U8 ^
        },0 u$ h2 T5 w+ n  j
# i" x$ Q% ]( ^5 q% d) j* l
        {
% `6 ]5 U0 u) H  H/ _0 ~% n, d$ E& N+ j5 U/ r7 x+ E# j/ T
                .active_low = 0,& Q8 r  N, P* Q4 N# j
2 Q4 Z* a* T1 ~3 X3 M
                .gpio = DA850_USER_LED2,
# f9 k0 v; f, ~# H. e, K# [& t- S' m# W0 `
                .name = "user_led2",
% O4 f8 c5 W4 n3 G/ ?1 f7 ^( ?. ^& j4 K6 F5 L4 Q6 n
                .default_trigger = "default-on",
; p' ]- L7 C  }, C& [* c3 e( j1 s6 f2 I) C" k; Y! L
        },0 ^9 i/ ]7 i" T6 \/ e* r0 y

" x  T  Q8 U" g9 I0 o        {
& S2 P/ H1 {. W' v9 x4 A. a
6 o/ }: T' H( ?) u" D                .active_low = 0,
+ w9 N5 {$ q6 ]/ b
" O, i  B* g0 ^, ~8 R1 s8 A                .gpio = DA850_USER_LED3,, N. Q: [7 T* P. Z1 B

3 g; g" N! h2 T# n  c                .name = "user_led3",7 r  W: c( o' ]

2 X' p6 W5 |# Z. g0 X( }' J                .default_trigger = "default-on",( f4 i1 m- j( e3 z/ z% ~) _

$ x- K: t+ \5 x* }3 t        },
! S8 m8 e8 d6 A5 ]+ i3 J/ w6 r  `& O% F; C8 f+ k6 |7 S
        {5 w* r$ M. Y3 I3 K0 ]
' h5 e! p6 G- E3 Q0 F" m$ b- p! X& @
                .active_low = 0,
, [, Y& \% d, B& F  [9 w0 o" f9 c; {! D0 K# m
                .gpio = DA850_USER_LED4,8 Z3 X0 ^* m+ c* s+ n* ?
9 |4 V  h4 S% o
                .name = "user_led4",2 Q  r0 K8 C' d, `
+ i) k. T, S/ [* M. i( V
                .default_trigger = "default-on",' V! T  O# \  w7 ]4 D, Z8 k
3 o" H  N5 r! K2 N
        },
" v3 N# U/ h5 n- p5 ?  a) o" @3 C! {6 N6 P2 Z7 q* Z2 X
        {
! {/ x& {* F, t8 s9 {; Y3 H  `- d9 B6 g0 D8 C) B6 r
                .active_low = 0,
8 R8 u8 V0 p. n2 H, [. b+ S; d/ R  ], i6 |" L  D
                .gpio = DA850_USER_LED5,/ M9 q; U( H3 h1 X
/ s9 w$ i* s0 ?# r7 _
                .name = "user_led5",
6 ^9 L( S. }5 [8 b4 E5 ?( m% m) u- Y. p6 {( R8 K5 _) _
                .default_trigger = "default-on",
7 F% r0 T# O7 H3 f+ V" B2 H1 B2 O# ^* v+ v' k9 _
        },! w- @* [7 o9 `  q! s4 Z
8 K. B. j6 ~) }+ A/ k
};3 s8 c, w* f4 Y  ~' `( Z

( N! z2 n' Q- @( y+ E- l5 P# q9 e, Y; P, o* n8 m6 m
& o* J& O% ~4 K/ f+ M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; c: C8 B' T# ~
  M; ]6 M6 d" D" E  H5 z
        .leds = da850_evm_tl_leds,
2 K% h* v" \" s& N4 }8 H/ ]" y2 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' X* U! K6 z4 n
. S9 N% C+ U9 ^) I8 ]( m. E
};
/ `0 u  h; ]- o+ G. @/ q6 e" h3 v3 e+ Z, V9 S* q- b+ H

* I& G5 h# \5 J4 N! N( {
0 l3 b: Z* ~. T' Rstatic void led_dev_release(struct device *dev)4 q( a2 q' b* |# ^* o6 E

) ^  q3 U$ m% B5 ?! f$ i( j{" x" T$ G( J# m+ Q- U  B

3 |! B- Z: \+ M) d/ ~' G$ L};6 o+ O. ^' r6 N6 Y" q$ W( X+ K, C3 k
6 I. Y& p' @/ a  p- \7 m; K

6 G1 v4 `7 J  o+ e7 ~8 c
3 h" z6 B0 l6 b, b! E2 fstatic struct platform_device da850_evm_tl_leds_device = {
) X$ e% M, X7 _% @) n( ~& b. v
+ W  }, N2 i5 B8 x        .name                = "leds-gpio",
7 C; }% k4 H4 n  B' Y7 n
* p: V/ ^5 C! I' p) C) ~$ b% Y        .id                = 1,
! [  Z* K9 X9 e) k( P2 K; j9 |$ p" x2 w6 V
        .dev = {
" o9 `6 q8 E- H/ m. C# P
' E6 P! {0 [0 m0 f                .platform_data = &da850_evm_tl_leds_pdata,
2 w. l/ A; `' t. E3 ]8 U  e& Z) D5 f1 o- B
                .release = led_dev_release,# U" f# G) r, x) e$ H4 E  Z1 |) x

" ^& }& ?" L% ^+ ?4 S/ L        }
) Q- M/ F3 k7 Z( [1 T
! B4 G. l6 w7 z1 t: i5 H4 |0 a, J};8 s! M; w) Z+ L
) L+ r3 i+ b5 n+ D) R
, v2 R9 s5 ?: b/ D9 {7 A
, x7 g. [- J3 x! O  }2 K
static int __init led_platform_init(void)
6 Z& x! a) d: b
5 V6 ?2 m- D& r' R+ W  O{
. @6 G* V0 [( m0 x2 W6 |9 M: }( @! m8 M" a
        int ret;
! i% o3 \' h. i6 Y+ s7 Z4 v5 A; P/ {, d) m% Q% G# ^/ C4 H* D' N0 F
#if 00 a5 e# Z0 @' O3 Q: T' ^. `
7 \/ ?2 u5 H9 m% {* L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 J6 D6 h/ L) g5 g
" [- E4 m( I5 B0 t
        if (ret)  l$ R) T% h* `. G  a: ]

. g: B7 x8 d, Z  X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 t$ |& o: h' w: ]9 K* D8 L6 q3 ?& u9 T: d8 n* O
                                "%d\n", ret);
" ~+ d: x8 Z% J# u7 V
2 h# Y9 X- j. x3 x, V$ G9 T, ^#endif
  Z! [  @/ |5 d' H0 Q  \$ v2 H/ Q0 c8 I  [0 \; W' {. d$ i1 Q
        ret = platform_device_register(&da850_evm_tl_leds_device);% x7 p" M5 G8 e7 a) d# B2 d. q
3 E1 x! j7 c4 K' ?( Y. t
        if (ret)* t7 U' _8 J8 E% {! {( B+ k

. J! w, C  n) ~5 _3 S" x- `9 ?( z                pr_warning("Could not register som GPIO expander LEDS");0 v# }6 B  D% q5 l

0 f# g5 ]! p; {        else
% s" K9 t  X$ `; Y+ ^/ c1 v5 ^+ S! `/ d+ F  C- I, v8 X5 @7 B% \
                printk(KERN_INFO "LED register sucessful!\n");) y- ?+ i3 V4 G9 ^  F; Q
- A3 M* l, e6 t2 {3 M

" W& }7 p( A8 _' m" E* u
/ O$ G! l0 m6 P; f        return ret;
" i! l) V. l; R
' }; L2 X+ Z  Z" y}8 E# q) s+ _3 y2 X
8 u3 M* r% f/ l. j
+ T" [; M2 N  q9 m

7 _  X+ T9 ~& H6 |2 |/ Cstatic void __exit led_platform_exit(void)
2 S' ~# S0 f- g' g* U1 n3 h; m) e2 Y/ d. n( y) z! j/ k8 y1 Y" i
{
2 |7 R. y; E: p3 H; T# t4 [$ R+ y5 P% d( U
        platform_device_unregister(&da850_evm_tl_leds_device);
7 x/ l; ~. U$ {( l$ _% f  C: q* V  n8 X$ ^

- `7 ^( n; w. o2 Q4 v- G8 T
( I# c7 `& R+ l8 ?& q& a! y& u        printk(KERN_INFO "LED unregister!\n");6 x% p! V( C( Z

5 r2 o$ }- d: Q+ @}3 F  c% w5 T: O  d

6 r, R. T4 L4 {" j
0 A$ M" a- p) a4 l$ l6 {: }
/ M' K/ T  G, q8 S$ I+ ?module_init(led_platform_init);
* e# `- T- _. W
% c8 r  k5 S- o1 Q- rmodule_exit(led_platform_exit);* ~  [$ f! c9 a; Q1 s/ z! \' ?

8 X9 X+ |9 x$ J  h2 B9 D- m0 t
2 |$ E$ t# F2 G8 N3 y) d* o' v; q5 t- c% R/ [
MODULE_DESCRIPTION("Led platform driver");2 K) n2 l  x, [5 Z% U
0 L7 a  q: y" ~# ~! Q3 p0 v
MODULE_AUTHOR("Tronlong");
( l9 ?6 {: c- t2 W  ~
* p: }3 y( e6 o! W8 N2 B+ d9 DMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
* {& i! e9 L4 W# f3 u) i, D' u6 v

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:328 E4 N% \& }9 r$ Y
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。8 r, v2 {$ A/ X
...

9 m( c& z& z& f3 T好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
! J% c* G) S4 C/ w1 t) shttp://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, 2025-11-6 07:38 , Processed in 0.046610 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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