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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 2 L0 G" z/ z% b1 i7 n

" r2 H/ M# k7 A" M# h2 ]; m3 p* o. Q请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的  _( B2 G; B2 j) |. {8 V' C; s  s

3 m$ _1 F, ?0 }3 t之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?- X3 E) Y+ }2 n2 |
. o9 f, J$ D& d. E$ q

本帖子中包含更多资源

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

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
+ s. o: z0 J: j% j2 E( D" xlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

% R) [4 X/ n$ k. ]我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:$ V( v+ h: s- S2 m$ T: F
#include <linux/module.h>' }! \$ P3 f1 ]
4 q+ \4 `' Q* G" [& k
#include <linux/kernel.h>
1 l1 c1 I1 k  z% d( S7 e
' O% j9 j/ I+ o% u, V+ E1 }#include <linux/types.h>
9 X6 i* L$ ^8 Z% Z/ Z1 B5 V, v( Z  Y0 b8 }0 A* R
#include <linux/gpio.h>
7 T/ y  g' P1 g$ V$ K3 g# n) I1 g# A1 w8 x( h
#include <linux/leds.h>
/ u* h6 b- S# d" C. i& Y$ t! N8 v% d2 v
#include <linux/platform_device.h>6 u3 N8 j( N# r9 y8 H& ?

" t% p. B4 ^. ?' B) b+ N* c3 }8 R' a! t4 Y7 J" |

) Q( D# u0 b8 S8 H& ?" w  h3 R#include <asm/mach-types.h>
' R! K0 K7 w+ O
9 J4 E9 V  j" v% @- ~' B#include <asm/mach/arch.h>
$ {6 m3 \1 k0 f3 m" [: |3 W5 r# [: P1 S
#include <mach/da8xx.h>0 A+ R/ x, E& o3 h  e7 u1 v
7 @; g' v, [6 c+ ~
#include <mach/mux.h>
$ T2 e3 I5 f# H6 K9 f7 i
( F& m6 n1 E0 s: C8 [: I; i8 s2 L$ ?

8 Y/ r( K; e) c, e, `! N8 n2 V  H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 M" D, k# t- {- W% y8 _& d4 x
% x; [. Y( S& X  G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' [. Z3 O+ d( r4 l
% w! B( ^$ D: Q2 i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ L+ e2 p" J5 A2 h/ @1 E
0 ]8 h3 w( H# K7 m9 u7 ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: W) H4 \; B, n# J( T
. F6 v; h0 }7 o; {#define DA850_USER_LED4 GPIO_TO_PIN(6,12)* M8 G* g4 t" q/ I9 K8 s
& g4 S7 X* a% I- i% U
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
; |: q3 o. E. G0 r6 |: V! g. @0 o# a" U9 E6 h! H

0 u5 o8 ^- W, {) C% t4 d
8 D: P( M$ s# Y/* assign the tl som board LED-GPIOs*/4 A$ p' F0 H' h- o
) B* p& @, |( j3 z
static const short da850_evm_tl_user_led_pins[] = {
7 r0 l& C' l8 e2 n1 c, G- M* u# o+ e" y7 v5 f
        /* These pins are definition at <mach/mux.h> file */' d) R6 _2 {1 w- M

! T0 j  o% ^6 A1 \0 ~        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
% _& Z6 a% i6 j5 z4 E! |6 z
  N( `% p7 g- `" K# h        -1$ [" T2 @9 O5 b3 c' r) ^- H
' _1 r0 _5 y( G: C) S  ]' s
};
+ ?. L, \" \& N$ p! W8 N0 P" ~- y: M
- O8 i: n6 P3 \3 f0 U1 ]: e
& f6 l% m9 {% M! N5 [# u. {; X5 @0 i7 d
static struct gpio_led da850_evm_tl_leds[] = {
3 O6 ]% A' p, ^+ C
: E! {9 ^9 U8 l6 Y        {" [7 n0 Y# T% t) I2 k5 J) E! D. A
6 p9 t! K  ~9 A' W2 i4 f
                .active_low = 0,5 `5 P$ C; i( F2 U2 L
5 |/ ~1 h+ A8 z# S# V3 d5 S% _& N' N
                .gpio = DA850_USER_LED0,: P* |) W- J$ B2 O

$ L4 X4 L4 b9 E' K" G7 Q8 }0 P                .name = "user_led0",
: k* n$ p# P' y) t9 D+ P9 ]0 \! n1 Y+ G/ U. @+ t- w
                .default_trigger = "default-on",
+ e/ j5 T, G+ `; |1 s  |4 U$ z. }
        },
& I  F4 t- y7 r+ E6 [7 w+ {5 M8 X8 @1 I& B0 X. Z  s5 C
        {) d  a) n; `/ ?9 D, z
1 S0 y" P2 G' u
                .active_low = 0,7 ]3 u* f' @6 B: p$ r- Z

& {+ x- Q. D, H; ^4 i5 a3 f$ z% m5 Q5 C. {                .gpio = DA850_USER_LED1,
5 V; \3 d8 \/ J2 N& Y' t
8 h: y) L* e) `( c: C                .name = "user_led1",6 v3 g. n; V4 v& z

) }/ h$ Y4 p+ i                .default_trigger = "default-on",
) D3 Q3 ~% |0 I. A3 n. W% J( q& K, f) ]. [$ r& e
        },
; z" F6 s7 L2 R2 x2 n& i- a
$ [& S. P% |! f( v        {5 q# I" c; o0 ^8 `4 H, g% ~
  s' C5 |6 ^% D5 U* ?
                .active_low = 0,
# J) W/ g& C- X0 A4 j9 f4 A' J1 x4 T9 U: G# ?6 ?
                .gpio = DA850_USER_LED2," U1 F& v  e% Q9 p

# G+ a# q3 ^- @                .name = "user_led2",# w# ]& ^% a- Z
) d* z, ?2 |2 J- w% S; O) ~' ]% I! `
                .default_trigger = "default-on",0 t" W5 u( d1 W" I& w- J' Z
6 H5 f8 p: K; ]+ L+ U( T2 U
        },
7 L  ?* ~1 m" V4 p7 {3 t
* {  b. c7 g* ]  C. F6 L9 U        {
: ^  U, Q' Q* R# w6 m+ `; @5 V$ m! u0 {( Z1 @* G/ |
                .active_low = 0,6 I8 [! L. E  T6 |
! K8 z; J* V: s$ V
                .gpio = DA850_USER_LED3,1 I5 u* q; Y8 [: X% m  C3 L

9 J  A+ ^# C& w/ ~, {" ~, V                .name = "user_led3",8 b0 t, X7 t* ~( j
- l0 ~8 h0 R/ y. n1 w/ O* f! q+ f8 ~* I
                .default_trigger = "default-on",
# n8 b2 G2 Q7 b* z7 }6 T
3 D5 w7 n4 \! R' Z7 P3 w  l! {        },# D5 Z7 R5 M1 S% k; v. S( A

# b; ]3 U- F1 I' H& x8 H6 C/ t        {3 s8 N7 V+ Q1 X! f- n+ q" k
- F8 e, }; u. m6 {; u
                .active_low = 0,
% O, m: ]8 k9 c1 w7 A, P0 |6 _
& ^" }( a2 E2 T1 j# V2 P                .gpio = DA850_USER_LED4,1 ~! K1 p1 z3 Z( l
) g7 W: I4 P  {
                .name = "user_led4",
" o1 p! c7 E' M, ^2 i$ e+ n- E2 W2 ^! e2 ?% H8 S
                .default_trigger = "default-on",  p3 T; z) [  _9 O( m# Q' H

8 q# Z. o4 F  H) }6 `        }," @2 u4 R9 l- J/ k' K6 F0 z3 `
/ N. Q7 a& e, s% m) y  f" Z% i' c- G
        {8 L: n! g% y; @$ U
2 P8 X  F8 r+ K) a7 x4 s' d
                .active_low = 0,
7 R- }: y* \" l6 i/ c* L3 F; F* K) a% g; h: ~+ W) N  I
                .gpio = DA850_USER_LED5,( f8 x8 W! R' Q4 `/ ?6 T( e5 W
% N3 L; ]$ s$ E0 Q. i8 A
                .name = "user_led5",& c; l) p- C/ S7 }, P

# p, r- L% }# I. V- K* F                .default_trigger = "default-on",0 V6 r' x% Q9 I

& J2 @) s" x5 `8 Q# |        },
( O: Z' z1 \/ t. B, n/ F) E6 A1 n4 x! K: \
};  _& \. f3 v. ~& }: I" q- r

6 V, P3 R4 s; R1 N, L
6 M2 L! h) S: i8 Y, R- B  Z8 X% U
  q3 E$ m& l1 t" Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( r% r3 |- O) y7 e/ b
" y* e; H1 G7 \, K/ `
        .leds = da850_evm_tl_leds,$ z8 @2 x; z5 m  O: ]7 Y# q0 ?

0 C% o4 X! ?5 i, C" ]- s# c        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) ?5 G1 S; S# a* \. i  q
: |. {% x) Q3 x
};
5 H6 V3 p$ N8 l! K
9 ]) w5 r8 O& J3 m( s' p& \, ]) w4 b. d" C

& L4 y' Y: ~8 Lstatic void led_dev_release(struct device *dev)$ D; L* F' M1 Y

6 e$ j0 ?, u3 R& U, ]1 _" [{1 a4 Q) J1 E8 M- v- d
4 O1 T0 u3 ?' [8 n# O
};
, F+ @. I: L  c2 k0 {
7 a( g9 t5 [0 r, B6 t4 d5 T; w, @3 u, _) A. k+ J: S7 M
. o2 X! ]: R7 m5 J2 v
static struct platform_device da850_evm_tl_leds_device = {
9 O- s% F( S! G9 x" [; v+ X$ J& S  v5 |7 @, G) y
        .name                = "leds-gpio",
' P1 q2 L; D" ?( e" x; }
1 e% H9 Z/ Z5 A3 b$ n' h- V5 Q% y        .id                = 1,
; i7 ^% x9 }+ O( o: b0 V- l
. J& w9 t! b- }2 Y        .dev = {
, |8 X0 A) k1 R7 z2 u
! o0 s0 ]" q+ d& V8 g                .platform_data = &da850_evm_tl_leds_pdata,& X  G# {& L( @4 r! {1 e

  N% i1 Z6 r. T! o" K. \                .release = led_dev_release,
* b8 L" A. l* L& P5 L% E' T
0 [( Q- I  P9 |# H# R        }  V6 h/ T: R% N2 B$ f, [9 e
! B" a" f6 n  M
};
7 T3 h; A2 c; J% z* p) ]0 h' W: \+ e4 V
% k% C1 [3 E( P& c% h6 G
8 y  W3 i- V/ l% A9 Q6 }8 q
static int __init led_platform_init(void)" L, Q% D# v: g; z( \" y

" \7 Y5 k) E" U" P5 U/ M* D) N{! E" P8 e# T2 R6 h! `1 i6 \
$ ~! _+ s8 W. s( x1 V5 ]4 D- ?
        int ret;
- j- i: d- a8 ^9 f7 E2 K# a5 p! b" _
" E0 G" }8 P' e#if 09 j- s9 C5 u2 R% F1 I' g

- B* _" d& j. r3 r2 c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 B0 r  F9 k! Z( c* I0 r+ F$ @8 Y) U4 i* ?  H+ a
        if (ret)
/ Q" }/ u' d. n
5 D+ z+ I  J. f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# ?+ O; V9 `8 l6 V2 G4 f
' P4 \" x/ M: A4 ]$ L                                "%d\n", ret);
8 S  B/ Y" e9 o2 F. P8 |0 a/ G# l7 d+ C) Q0 t! y; U. ~7 a
#endif
! _. b( }, D% h5 m. `" Z3 D( ]( d3 H8 [! [( l
        ret = platform_device_register(&da850_evm_tl_leds_device);8 G% B1 N) j4 t2 z& ?# \

# v% w# S4 j% z) f" @1 W2 s0 q        if (ret)
& c& Q5 K: b2 ~; T% H% L+ O, Y2 c3 e9 V: ?# X0 K4 G. M1 ~
                pr_warning("Could not register som GPIO expander LEDS");
! q4 ^" F9 D# c0 }! q. K
/ z8 d+ A3 O/ b- N% s        else
4 t9 h5 R; f+ C, q6 g# ]2 h  V( r+ C' k* }" l0 R
                printk(KERN_INFO "LED register sucessful!\n");7 M% h% P. |9 s
) g3 [+ M; D& j
9 Z2 |( A0 ]$ T' @2 C+ _+ |6 g5 p0 s
0 ?6 k% r& t5 W' e" y
        return ret;2 k3 v, \+ v' t' L# w0 U  g$ L

7 M2 N1 `2 E2 t. t# F! ?}, ~  y3 C/ _" O% h0 m- ^( P

5 [0 x6 K/ E- _. [% z) G. {4 [/ x
- {' e5 w1 E( @3 @8 u) K6 Y
static void __exit led_platform_exit(void)) _# Y4 I, }  R8 V. D

) B. K! J; ^  d$ ~& W5 u{
( ]6 T& c( ]  \8 I+ S0 Y! _6 k# b( x
        platform_device_unregister(&da850_evm_tl_leds_device);, T% L2 m1 ^. l8 l# R
/ V, u0 q2 _: H  V% G

  x2 Z1 W! O9 Y
3 v! h' H1 q( N  q        printk(KERN_INFO "LED unregister!\n");
  C: f- b) j8 c/ V  k- ?( q7 x7 ]
}
% @$ b9 N4 ~6 e, m/ t* X" d
  K) g! l3 Y+ K- g+ S3 t2 u! N& M9 ]3 A( y6 u

- z, R) t* H. W6 B8 f) F* m8 umodule_init(led_platform_init);  E1 u4 u& y; U& e  O! N: y$ t
1 c; S: Q9 e. s$ D" X2 x+ R
module_exit(led_platform_exit);& A* _& l  |* H+ o' C4 `
  X' X; j0 T9 o: m( g' N6 G
5 B# M4 S5 c) S' w0 q, y

' K* F& \# ]. hMODULE_DESCRIPTION("Led platform driver");
- S. G! j7 {- `  T3 R6 o
8 t! B  t' T. N( U# T$ nMODULE_AUTHOR("Tronlong");  Y4 Y! l; v! H" y0 f4 B

7 Q% ^1 h% u8 s: L" tMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。* b  C2 l) h3 o  K- Q' c

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32+ d& Z& |  V! h( n6 E& d5 a( J' c' I
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
# y( m" S" g0 Q; W& T ...

3 u( Z) R5 e+ W" k. D3 ?) z3 X+ }好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。7 j3 C  e+ n' s: c; [6 Z
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-6-17 18:14 , Processed in 0.045651 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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