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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
1 r. _4 l+ g0 M  y- m# P4 a2 V3 y: l* W# N: b  K+ }
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
5 B) q9 j9 e* G
9 x" G/ m# x, x: {0 R4 Q' g3 ^之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?3 q9 U. t, z; s; |# w( L9 p) N& z
' _* S- ]0 w; D- e) C

本帖子中包含更多资源

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

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, q4 U4 |7 i: b+ R; Q. i8 P
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
$ ^2 o+ ~5 F4 n  ^; c
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
' L( H7 ^1 H+ N8 c#include <linux/module.h>+ n! f7 A- E: V1 U  d3 }3 `
5 I2 D# Y' S) j7 e( A
#include <linux/kernel.h>
4 @! S. x2 {7 {) m8 X3 M
2 `" ^) X& B% k! J" f' n- J! G#include <linux/types.h>
! B/ n( I3 s+ x) u. Q: [' d5 B; C0 ?
#include <linux/gpio.h>4 G( i$ t, _" s8 ^

; Q( h$ H) ?0 r. V) v5 n6 F#include <linux/leds.h>
; J/ V+ V  {, I$ k$ t9 J. _' c
+ m6 B) I5 F, _3 d#include <linux/platform_device.h>8 o* x" W+ {( G( _: G0 M

, m8 k* |8 W# W- V$ L9 h* n" P# d5 i: R% M# A. ]7 x

. \3 G/ y# ~8 Y8 C#include <asm/mach-types.h>
3 ]$ p1 _$ K  l5 O& ^/ g0 ]8 Y) |# m8 a! Q
#include <asm/mach/arch.h>, v& V( H% F) t' C, R% X
. Y2 {% k3 P6 a. l6 O  f! s' |$ d
#include <mach/da8xx.h>8 A8 m& v5 _$ L3 M* ]6 q
8 P* p/ [& r9 w2 m4 i- E; B
#include <mach/mux.h>
' T5 X# k) ^7 J5 p% S$ `! Z  y
* R3 i7 ]6 |, [) y* ?7 X* s$ l
' c7 y1 M! N% U0 c
3 w2 q4 j/ l, B* y# _1 _( w( l# a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 w% h& q$ Y: V( {+ o" K2 u/ J
0 R9 j! ^4 H1 P2 [: r8 j7 c7 [, Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" g$ h( l* _( D" u% h
- i) X7 h; \4 o# |- a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 H# i6 u, j# q5 q- [) U* ~

6 Y% w7 x: R# E- G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 ^* B! U! }: t- j& T$ \

3 N0 a0 v# U& G& N: e2 y. Q#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
* k$ D# X" U# D4 X0 \
5 k/ A: ~) d7 \, h) w' S1 D. o#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
1 d7 I0 Q! P5 K: G$ |  p* }
6 W6 v! |6 H% [2 \/ U2 z
- S7 U) v3 u1 `3 J4 O
' z/ D' B+ @$ ^5 ^* P/* assign the tl som board LED-GPIOs*/
) {6 O$ M& {9 a: V% R- \) }9 P8 h% n/ n) [
static const short da850_evm_tl_user_led_pins[] = {; h) u& _  u; w% Z- V% T* z

4 J( _& ^/ r3 n! R3 y: \4 D        /* These pins are definition at <mach/mux.h> file */1 c. [8 f7 Q$ o- I& _6 u

3 Q& z- f6 U$ R0 H" ]- _( I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,* ?8 @0 k- v) L' f6 e0 P- i0 u5 ?

$ O+ u; v" b" m% x7 w        -1/ ?0 E6 _* G. y) A5 P3 A
2 s- i0 x# G) J3 c" X
};" N) A0 P! e% @! |' m, q( w1 D
" r& A8 S# b1 j! B5 y# K6 K

: Q/ ]% K  @( t# E4 z
: A8 n. X4 Q, c" q3 N- _% ?$ \6 \static struct gpio_led da850_evm_tl_leds[] = {/ g- J. ?: \' w9 v

) @, h& y8 k% p5 f3 d, p: o% G9 ]+ W        {
! L4 R0 x+ F6 q9 G, ~
( `8 Y4 F/ o& t& k  E* a                .active_low = 0,3 b2 p6 D4 M3 f* \* ?4 i
" R& y* s2 ?2 ^
                .gpio = DA850_USER_LED0,
- e) O9 M7 _0 ]0 O5 y; I6 X/ f3 i) |! `( k: Y" R
                .name = "user_led0",$ X& H  @3 n7 W5 f. s
+ l1 q/ O9 _# w8 X7 E# a( a
                .default_trigger = "default-on",, a* `, ]1 o* U, v6 s3 o

5 W+ t1 x- V: Q' U& i* u/ R        },
1 h' Y' y) ]- d: r: b( s* R+ P
5 o+ S" ^! |6 [" X1 I3 j        {6 r! }, }/ U9 y8 W# O$ O

/ r- [7 [# b  P& a, T; ?) `                .active_low = 0,
; m$ d0 f+ |; S: [# M4 d' J: O+ K
( f4 v6 B2 ?. S8 z                .gpio = DA850_USER_LED1,
0 x8 L# `' L% s9 q& p
) B( z. P* s7 J0 H                .name = "user_led1",5 o- L. t1 U  d2 j0 D; G

. @% z& n" B  k6 ]# U" K/ C, P                .default_trigger = "default-on",
' d) e- x& t. M) Q6 d  A! X, |8 B6 D- e6 l+ j5 @
        },
& p6 v" ]0 O, R4 y9 r& [" ~0 c( `5 y
        {
" V4 ?% t3 W, i. _! s* q
5 U  e) O1 F# @! @1 n% a                .active_low = 0,* @  r5 d- |7 m8 |' T# I; Y+ u

. G% D' z8 K( D6 y5 U, Z! @                .gpio = DA850_USER_LED2,
9 `8 I( x( X9 X. X2 _# O) v4 G
0 \# ~* v, ^& E0 N0 K                .name = "user_led2",  T8 t9 T: H* ~3 P

. F( p( X3 V4 G* T; e( Q% v$ ~                .default_trigger = "default-on",
2 J8 O4 S. L+ s0 P9 x! z
! l& q! i; h& \4 J- F/ k' e% j; u6 p        },
$ v% f) H% }) \& a2 i) f9 Q
) o0 \, V0 \# f/ F        {0 j8 X( {" c3 }3 D$ v

+ ]6 W8 }+ t9 X- w                .active_low = 0," k( q# u8 _* S' q% u) ~

* X7 D1 W" {' V/ J, ~7 V: D- K/ S$ H                .gpio = DA850_USER_LED3,
6 X0 }& F! ]2 M/ r8 a
, Y" x' f' |4 @( o. R: j) K. R                .name = "user_led3",
  F9 {4 s( }  `4 f( N& u0 l1 R! o+ C0 P4 p! \+ X& `; J
                .default_trigger = "default-on",* d. H* C+ x% |6 `6 c
% ^+ H; K0 u- O+ `6 T  b' A
        },
8 a: o% d8 F4 M# z+ C  c
* D1 Z- Z; u% W, u# {+ V7 u: _        {
9 o2 i0 J" F1 k  o8 Q7 N. T+ o+ G. l1 r
                .active_low = 0,
* {* h, L- x' {* V
) d( ^+ Y. h5 X% e% l                .gpio = DA850_USER_LED4,
" S, H3 m2 \* q) t# K
9 s/ `5 ?( Y. C; x4 g! a9 Y                .name = "user_led4",
1 d* A  p9 }/ \- G
& S* S: G; _- N4 [% ?+ N                .default_trigger = "default-on",
% Q' }: d2 |& q8 y' k4 o2 Y
$ e/ o7 U/ [$ M, H        },
5 T! X5 |. N- y% H4 g9 r9 o3 t5 W1 w/ z) `3 M2 ?& ^/ w' z" a
        {, d# A' }  y2 i. ^; F' ~
# ?+ \$ E0 a& x$ f3 R
                .active_low = 0,/ }8 _! P; U) i2 s4 X  s; W9 v
$ b' ~8 D2 ?" Z, |: b; J
                .gpio = DA850_USER_LED5,
9 \# C2 e3 G1 J' e
0 J7 k5 _- D3 A' c- m                .name = "user_led5",
: b5 Z4 k, m# n7 ~( Z$ m4 s$ @
4 Z# B! r8 y* m5 w                .default_trigger = "default-on",) Z) s/ W$ R8 d9 K3 |) a
9 z! j6 s# w. W! U" }
        },
0 Z' G1 ~" v* B& m5 g/ X6 {1 }* D0 w* k$ j3 I) {
};
" L" U' P3 ?1 h8 f8 {' _' g$ z% H# P2 C3 }$ p4 h$ ~: x

$ o/ j8 Z) A% I: A( @: H8 y; r2 R4 f5 M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ Q7 Z0 r! }0 [! n

4 \8 Z. G# x8 ~6 d. I% b        .leds = da850_evm_tl_leds,
- S/ A# U3 T+ g! C4 G! U/ g
6 P! r6 r* |+ |7 X" v! o$ U* I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 E' s5 O' A# x0 b3 R" ~, C+ ^" A4 {

; q, \4 ^6 s# h( J1 s; {};. ~' \" {- i; B0 m7 J: P
1 |' w9 r# Z  q! a  g$ R& Z
) B/ E5 [* E: e- {' E
0 H- n* k$ I/ {% C7 y) ^
static void led_dev_release(struct device *dev). ?- A- |7 a  y3 w* _. q- R
' H0 `: Q' u- N! U
{
! H0 S6 y& V. `2 A  H& F- W# u  _. ~; C
};
" [" q( V8 ?" T4 m) c  j. g0 G9 [" \5 s2 ^8 ^5 ^

" A9 z# W2 U, @( e
3 l# }4 W$ c. e  y2 R) q, {) B4 Estatic struct platform_device da850_evm_tl_leds_device = {. O' U) Q. w+ c2 X; V& W* ^

5 ^6 `( i8 D1 a2 Q" g5 n        .name                = "leds-gpio",
. R; t8 z; u: ~5 b7 @; X
% ^; ?2 Q1 a. r        .id                = 1,  D% ?; z6 t) z: w) J5 N
9 ?  j4 c4 ?& @1 R3 j- Z) M! W% r' u) w
        .dev = {
/ Z" S! M' g7 R& z5 w7 \4 @" y; \! R4 E$ E
                .platform_data = &da850_evm_tl_leds_pdata,7 Y  u7 g+ t) y7 R: L

/ D/ _% d8 b+ z' {. P% \                .release = led_dev_release,
; X5 @+ c! t9 E, n
4 S" v/ W0 @5 P: w4 W" o        }" a0 c, t2 ^6 @1 w$ O5 K& ?

& O, ~, Q* c4 `; Y7 {};2 y. J: Q# d3 U. [6 I! k9 |

+ L5 A2 f6 r) |8 a& B- V, x
1 E; G& G: C; L( x7 |8 U& a% G5 M) s: D! X
static int __init led_platform_init(void)# d1 m- P% y& ^- B8 T
! X2 v& T; l) |& ~5 o( E* o
{
* d/ O- P1 `0 Y  H6 P9 h$ i+ J; U2 c
- D2 D. h/ F& k: E( U; G# d7 R+ U        int ret;
2 @2 `& j" N: p
- a* \, U& u5 z' z5 W( `#if 0
$ @) k, g( q4 K! i
, Y! H/ `( _; G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( P( S! n& l% M' A/ X: Z. \6 ~
6 U" ^5 @/ W+ K) F1 H/ o        if (ret)
& S; l6 |9 J' e9 H! s9 ?9 `( Q& h
& B1 P. U) _# E. f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", g$ I7 w1 N; j

+ a# F7 y3 |+ F: z0 s9 Z                                "%d\n", ret);
& L8 `" [0 F! O: i* ]9 \6 L0 ~; A+ V# V$ Q
#endif4 D$ f& t9 v" C" N

& J1 A" d! [6 T6 |/ A1 N! [; O        ret = platform_device_register(&da850_evm_tl_leds_device);
- W/ R2 C- c( d) B/ \( ^0 r/ z8 l* _1 a  b
        if (ret)
2 K8 j' @; I7 F/ P  L# v" e
/ N7 O2 O% n5 T                pr_warning("Could not register som GPIO expander LEDS");
2 F2 D5 F& g( {! O% O# H" \3 r7 P
- W& L! F$ w) [  P6 u        else
" ~$ k6 K" T1 B6 t6 u  I1 e0 I
" G( e: {6 q; M3 ~                printk(KERN_INFO "LED register sucessful!\n");
" c4 G4 a. C5 j) [4 x% y8 q' ?8 L, \0 I4 \# u
( s9 C0 ]9 J% w

, B0 R7 G3 U6 M        return ret;4 \6 j; j' I9 t4 _+ \

! ^# r* g' E! b9 N" G' p}6 T3 \4 x  i4 x; B0 G

/ X, ?) o3 m) Z3 F1 k' f* b4 U. F* F1 d
, T! Q$ D8 w1 [7 F' y/ W5 W
static void __exit led_platform_exit(void)
) }8 n  E: B! r/ ~7 }) k! \/ R) B! u& s/ Y7 D! v* s
{
( b& B& l; F" _( m. V
/ V- G; K7 T: ^& @, \        platform_device_unregister(&da850_evm_tl_leds_device);' j1 ~- l. `/ e- {' p
! j( ~7 V* z3 z# ?) |" W0 E
9 I# t% E: ?/ Y6 W+ U6 b
, l9 R3 J+ t* y' Y) L
        printk(KERN_INFO "LED unregister!\n");
: W9 {" T+ ^1 `# F/ g
5 Q+ \$ q* |$ s- O}
) j* x3 L! X& V. r  d! @
7 Q  m: f! C: v- Z9 x, \) ~
' J2 H# l7 @3 Q# A7 \
7 j; b5 \0 }9 {module_init(led_platform_init);
" G# M& u2 i- d) l9 n8 v3 A# j' @. S6 W- s2 k8 V) T/ T7 ?& y
module_exit(led_platform_exit);  Y% H, Z4 H9 l- [6 F/ z0 U6 N# B
3 K3 V; w0 A. @7 V

9 a8 Z! D* k# M% Y' s
: A$ }6 z' Q( }- N- r+ zMODULE_DESCRIPTION("Led platform driver");; i& S( ]: R* {. L& x% c

) O- m4 {) j. a* ]MODULE_AUTHOR("Tronlong");
, r! U" [4 p5 c' ~3 a( I" p1 w( Y! n6 I6 q& q3 p* I4 }+ N6 {$ W
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。8 l7 `4 G$ ^1 R

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32& A$ s2 j. M; {2 H: ], b5 h3 M0 L
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。8 l; R: ~, |7 `' t, K
...
% I/ j6 T- D% }& v1 _+ @# I
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。9 q0 `) C1 ?9 C; u/ r
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, 2025-4-29 23:30 , Processed in 0.045769 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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