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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 ; S8 t6 h$ R( C. J( @6 b- X

1 l' @" D4 K$ ~6 w$ J% ?& c. H请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
. Q, h) J' ~$ l- l# J+ |8 a/ {5 U8 w- t: h, y6 c% o* Q5 {4 F" W
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
) }! m# ?$ [; k: P+ c& l7 {( [. ]7 `9 U1 y  ?

本帖子中包含更多资源

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

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
  Z1 s5 r$ T# D$ L( b7 ^8 ]* X5 N4 |* q; ~linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
8 R( y  P& Q1 p9 Z
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:0 ]. z# H9 ]& u1 O
#include <linux/module.h># Z: t) p' O, |$ e$ O

9 [, Z( o+ [: o" m( a#include <linux/kernel.h>& m8 G6 ?. V; w' M! o+ v% W
/ H" ^$ C$ X7 N$ |5 E
#include <linux/types.h>8 E8 \) Z8 {$ K' i- D* T

" V1 w* c9 v) D; A" K, P( o5 p* v#include <linux/gpio.h>9 x. \: H1 Z* J

: v: k6 J; M: Y( G7 i3 w* g#include <linux/leds.h>" l3 N( g- s9 p5 j4 Q+ E1 G: y  _
; e5 a3 V; J2 X) D' d0 [: H1 T! W
#include <linux/platform_device.h>
  M; ~# Y' I4 l5 p' v- L6 w( j! H
$ ]3 x3 f' O6 ^! y) e
9 `! B* P8 K# l- |! n$ P! |) o2 k2 c. ~2 M
#include <asm/mach-types.h>; @" }3 ^5 f6 v$ ], E

- T5 v/ A+ y  f: g; |* B#include <asm/mach/arch.h>
* o. ~9 Z' I; h7 {) J1 [7 m; G
1 x1 L) i) n) [7 b4 n/ T  E7 M6 `. T#include <mach/da8xx.h># Y, Z$ W: c8 [8 j
2 c: @4 c- [5 S2 o
#include <mach/mux.h>; M  V# @8 Q. `

. o0 w" }2 V5 T1 n, _7 T# L8 G/ q" v7 W/ {
; ?3 }7 V) y; Q$ V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). F- n/ G% D+ H- `

& h5 G; Y, F7 a) ~$ V" C! N' `$ F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); O" D& ?# s- V% Y( s" n' m

# K) ?: v3 d, `- n4 a- Y5 |6 F$ V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 O0 C$ e. }! x* V; b$ o
  N+ R1 o, a: D7 M1 b# |% x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). @: O6 c  Q6 k4 s2 w5 \( w

; w, D# \5 I) t! g' ]8 @" O0 f: h#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
; g3 V9 L  e0 n  S6 P) K
$ y7 R+ V7 P. Y2 v: K#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
$ X( ^; t1 {4 x4 W
1 W5 }) J8 e1 |2 q
' Q" ]; h( I0 m2 O0 {8 o9 E. m. s) S* l5 O$ V/ |3 p4 H! ^7 e
/* assign the tl som board LED-GPIOs*/! S9 D( ~3 ~% {% X5 h

1 y$ D4 g+ f) v2 f* mstatic const short da850_evm_tl_user_led_pins[] = {
+ I% G6 p" o/ d( n; c7 M- O
( r  N. k4 P9 t) O$ o7 u1 J        /* These pins are definition at <mach/mux.h> file */
. `4 [( d' w! J3 R, u4 `/ H% M
8 m" _1 F' X9 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,. h) _# y) b" N$ \" x  T1 z) u/ |: U
5 l9 m% l4 W: Q
        -10 r- q+ p; D* D' B* R# `) |

& B& K& j6 k( g* {4 T};
5 ^3 R6 U" c7 ?7 y3 n% v% a* Y0 T
) `. `3 w* \4 ]! F: W$ {7 U9 a3 J& p/ `! W: W* A
. _) h7 ?3 W) D% _; D* Y
static struct gpio_led da850_evm_tl_leds[] = {" ?6 |1 U* Y( h( t2 N6 ]7 x. a
" u) q2 H! y9 @; d6 T6 u5 \8 a4 Z/ o
        {
# @2 Z0 j7 Y& @) @" M3 A3 D( R
% X4 o" y# I; ?2 I3 B                .active_low = 0,, t" e* O' n0 ~, y; J
$ [* E: m9 O9 |3 J7 ]
                .gpio = DA850_USER_LED0,7 n3 G5 J  F$ b$ @' z
; G. Y* {* w% u( v$ v
                .name = "user_led0",* F8 ?6 ^5 Y4 p/ w' m

& E2 W$ p2 E$ p* D) B                .default_trigger = "default-on",
( {4 s) q5 K  F7 b4 s
) g- w" t9 P3 C' R/ q2 f- V4 b! d        },
  c- S, |1 I: ]1 I9 Q  A
. ~  p* i/ ^! x        {
$ y( v! _* p/ M, S4 n% m/ w6 B" K
6 F, b7 R. m- X2 P. s                .active_low = 0,3 V  d* Y' J+ I  K6 X

3 @: W6 }" ]* C; ]4 Y! L* x                .gpio = DA850_USER_LED1,* f( d5 N/ k& f' V$ a* I. }+ C
3 ~. }; A4 ^/ I( V, T
                .name = "user_led1",
) t( M/ N" [% F1 w, {4 O3 _6 i7 G
: E$ T6 |; d/ c! t" f8 y                .default_trigger = "default-on",
. \: ~$ ~/ \; o5 N  x. d
( ?2 Y' ^* v( L+ r2 n/ S        },7 J) O( l/ m) S4 C1 |4 s# P$ [
3 e( q) [! K, Y% H
        {
9 w# r& Z* F' Q5 S4 a. C, u# I+ J
8 y! Y  ?5 U% D( i# q' w                .active_low = 0,0 t' V: Y& i( J, X4 [+ B

, E4 h3 W" ?, E9 e2 l( n                .gpio = DA850_USER_LED2,9 e! M9 n. l( g1 u! @1 i  l
* \- y* u2 c4 i: l% c4 u, v4 z+ {
                .name = "user_led2",
$ J4 w6 P, r. A; k7 C
: D* r& J' s: _) `                .default_trigger = "default-on",; s8 o9 a$ F2 a. u$ b0 X( \0 _- l! O

+ q$ @, E: _* G4 A7 \/ ^, Q- W        },5 W) ?- P3 K' i3 ~- W6 M; v

7 {' ?$ `/ P1 t0 ~+ [        {
- J$ [: h, ]: N" ^4 g& t$ y8 g8 U# D6 ~* m
                .active_low = 0,
' B* ], _) H% V& R: f$ V3 ?
; g' W/ V& |0 k, ]) f) A3 V                .gpio = DA850_USER_LED3,0 A& R# S1 S2 \3 ]
! P  f( B5 ]5 m5 i9 f# f; T) [) w
                .name = "user_led3",
" S9 B" p4 M- x. b  }2 h9 w# q* ]- h% c
                .default_trigger = "default-on",) q) y3 s" A& O9 L- |1 V# v
& Z6 G; v8 U+ v% X; O7 T/ K
        },( [# L! D9 ^& {3 Y

9 Z0 r* E! G# m9 a9 x( W! S7 F        {2 W6 x1 i6 t8 o8 t( U: _( R/ C( [
( b+ B# b8 i8 @. Z. K
                .active_low = 0,& D$ s) r! V, d7 I- s0 C( t, M

5 P0 }4 s$ h+ R( i7 l  |                .gpio = DA850_USER_LED4,
; p$ _3 ?" V3 q( Z8 g" Y0 x
1 |. m  i8 L, d- o1 f5 x                .name = "user_led4",# G* l- x6 C  V$ G/ N6 e
5 o; z" {+ o: R1 x
                .default_trigger = "default-on",
' j0 ^' R- a% Y2 s' g6 `
9 B" [6 ]/ a! [" c* f" r  \        },  D) \- ]$ P; {2 F& A2 S# ?
; u( L5 j" [3 S& N6 L! F
        {
( S, ~4 Z6 h  z# ~) [: g3 I- i5 t* N; k' G5 B$ [" Y# J
                .active_low = 0,
+ A4 O6 u0 B3 w
. W9 W! J6 y; ]8 c# H4 D  [# Z* u                .gpio = DA850_USER_LED5,
- w4 x# U9 x; c  q2 e8 a
2 {2 Z! j' D( J* s                .name = "user_led5",4 B9 S! Q7 [, X7 b# b

' J( a& o5 d4 d+ v7 P0 G) x                .default_trigger = "default-on",
0 b  \# x+ H. x
! @2 {: v9 T( T8 J( S        },, r; Q3 K2 A; q% s3 z
( h' C! x; v- l+ W! d
};# P& _8 p% U) s& V* x+ e
: S6 R7 w7 s8 F# R
. D# I: R3 [# x+ }3 w) T* M
/ L. v9 d) r3 |: |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 U" [" T/ V" W. f( K5 ^4 V
9 R* }0 E5 g8 L9 a# P% O& D8 U3 V8 `
        .leds = da850_evm_tl_leds,
* G8 Z& V# d$ R% S3 v/ |# ~7 E, Y& {1 m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, n: K& u- n% t) B5 S$ I1 F2 a% r0 [8 w4 p% }
};$ W8 Z" K) T$ }& n

7 K$ `8 t4 s+ C" B  w  j4 B8 R: X3 C  ^
" q0 X# o) W0 H  N
static void led_dev_release(struct device *dev)
$ c1 U* j9 ?+ c" p, H; V* n* ?& K6 C- `
{
8 n# v: Q0 `* l+ }& e% j8 `$ f$ l' |& X
};
4 ~( a7 B; W3 \; E0 Y9 o& T0 `7 b. s7 B. y: B9 ^+ G! D$ r

# z5 k0 a; q0 o2 q  B: b( x2 f1 j9 x8 Q& ~
static struct platform_device da850_evm_tl_leds_device = {
& q! r; S3 D* s; H  J, S6 ^7 ]9 N- u0 C: i; i
        .name                = "leds-gpio",
2 F1 O* T( g/ H$ l
9 r8 d0 }* j4 Z) v0 ~; g' ~        .id                = 1,0 {* n: D2 K$ ~7 C$ Z0 A9 `
3 e+ {! K5 @# y
        .dev = {, x* J4 v4 f% U/ h5 f" i1 u

8 I) G! |2 W5 W2 C                .platform_data = &da850_evm_tl_leds_pdata,; G$ H0 ^9 }0 i9 a

: ~: S  k, G# _$ l                .release = led_dev_release,
3 R9 a. \1 a1 p6 y. [* X
/ ~3 g7 Q( P2 W$ a* a: m: b        }2 ^: L! z0 y+ U) T% |# m. D% @
) I+ u6 h5 W' e! D, x
};" v; N' e$ U5 T' ?; ]+ b. W6 C

( U) m" U: s+ @) ?$ O1 S- Y4 {1 }1 q) J  r% `7 `

8 E" M' `" H* j7 Istatic int __init led_platform_init(void): O( D8 p/ ^' i5 |# ?) F) w

* t; n# e8 g' s5 g{! m  M4 C% |9 U# }. L* j5 e' f

! z& ^& y3 W/ s* C: Y2 u7 Q( d. c        int ret;: S- g1 F& |$ f- M& e' t! \
8 _4 }" j$ J2 h9 t9 u: o) C5 F
#if 0) v/ O# [3 f6 R. z

8 W/ j+ q( o6 f' K* q  m: K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% `5 w# e5 b% t2 d, a0 u

: W5 {3 `4 h  X7 Y* h, w9 s        if (ret)
' b6 `. r+ ^1 @9 ]& k/ H- g8 P2 p8 E* J4 J) _+ _; @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; k  H/ m+ w. O# W4 m' }$ |2 A5 t& W0 }/ ~3 T$ {; J
                                "%d\n", ret);9 }9 ^# |8 q, N6 X( M/ u: ]. y

8 u8 @! ^, l& |#endif
) ?- q4 ]6 R# T/ f. Q+ }/ O3 Q- ~$ G. B. Y
        ret = platform_device_register(&da850_evm_tl_leds_device);' Q1 x& m2 ~* i8 n- T- }' _4 N1 Q+ l
( `! A: p8 X/ P1 H8 g) H
        if (ret)
$ D) N5 p6 g% Y$ T8 a9 c* B: Q; x- X8 D3 s
                pr_warning("Could not register som GPIO expander LEDS");+ s2 `" ?7 p0 f, }0 }

- Q" ^" n; Y% d% M; N        else
& C, D" p3 u' K8 W4 Y( u$ f5 b4 a# J2 ?9 _* I4 Z% o; _
                printk(KERN_INFO "LED register sucessful!\n");
) ~7 G; R) v: G9 D( P. W8 e& U* b
' J. x) S) n/ N* V; t& r9 a- a2 A4 ^# Y& n& {1 M# L5 |9 {2 \
; z/ m& L3 |, _/ P7 U
        return ret;
" S' `9 s- G3 r# o1 Q7 c/ o- E5 o9 ]
}
* o" e: i4 x/ u. A! H' ?, B1 s- |$ O% A8 Q( |

* W3 _6 l) `$ {3 E) i" R9 e2 q- v
static void __exit led_platform_exit(void)
0 R4 _( ]) G8 q! }3 p; t$ D; n. k" c
{9 ]2 H1 o1 S5 b/ {2 \( `" R0 H4 J

, O: I: W  n/ R+ ?3 Y        platform_device_unregister(&da850_evm_tl_leds_device);4 J! Z' ]! u6 z4 Y/ I

% p9 d- u- c# S% L8 U  O+ Q3 R6 \& ^" ^. H
  S0 ~7 Z. ^( ?4 V& x5 [
        printk(KERN_INFO "LED unregister!\n");5 |3 H1 D' M8 u' z* y
$ X& S* i: W- c& E
}$ T! m* L% ]& U' q9 Z

1 P7 o! p( Z4 Q9 m& c( G
3 Y6 S' Q/ h, h: j+ ~) ~
! v8 m# s/ ~! F  W3 h9 \( E( m# c/ m( {module_init(led_platform_init);& |- X/ n) P- m8 J+ Z

- W5 Z/ Y7 m) W- P* V6 Q+ Tmodule_exit(led_platform_exit);, F& t; C6 f" }

* n. m4 F. B! ?% k" f/ k% ~! u: \8 F9 A3 I; {$ z5 I8 f7 u0 k7 D" ]
! T0 ]  n& E( v5 Q
MODULE_DESCRIPTION("Led platform driver");
- U3 w9 z5 W$ [9 v5 T4 P/ _! W4 }. w
MODULE_AUTHOR("Tronlong");
& I" P* g1 a3 P' j3 D7 a1 k3 y$ X1 R5 m( z. L- ]. T! C' G8 n
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。5 x; |0 E7 I. b& T5 `

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32# D8 E4 J  z( j+ i8 R
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
4 A  D0 b7 V4 {* T: R ...
% R: [5 O1 w) W: n0 N
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。9 A  P# c5 G  g7 j% 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-2 23:48 , Processed in 0.041383 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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