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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑   v! r1 B# V3 ?1 C( c  e" C

7 p7 v* [% Y' X* t' ]请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
2 Z  A8 U" Q& T! [8 U
! n& g9 f4 \$ p* k$ j) @9 N: L" w之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?1 Y" i: l, Z" ?2 C: t1 x
6 _' J+ @( e6 b* D0 G

本帖子中包含更多资源

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

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
# r9 l, c; H4 n. klinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
) C1 l+ w. P5 q: k7 x% h8 E) \; M
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
! t8 D% Q7 j: |7 W  U6 u& H#include <linux/module.h>
) N% V$ s" [2 l6 Z# J9 E8 G! l
( w+ t& Z9 T4 v, ~$ `" k#include <linux/kernel.h>
$ p6 o  l- `; s; I1 J9 d
; B  a! E6 X" p( s# M+ p#include <linux/types.h>
( e( J+ T: f5 H
1 R8 q- z" G0 f1 N8 s- n: I3 [#include <linux/gpio.h>: o3 ~* c% c* d* X" r
: P* N* P! r$ d) T
#include <linux/leds.h>
; Y4 m. ]4 r+ V
+ |% p2 b8 K# o7 @#include <linux/platform_device.h>, ?! T- c2 g4 w+ P
" n3 F* g6 w' i' c5 D, U( S, W% e
: ]: f2 M! l; n3 |% I1 V
$ u8 T) r( S1 n! K- l' D% E0 h- v
#include <asm/mach-types.h>
' o1 s$ q, m% [) a8 `) x  D: _! T9 `' I( ]! |
#include <asm/mach/arch.h>6 s: S1 k) Q4 c- O
& X! S5 D* c6 A" G" M4 w
#include <mach/da8xx.h>
* D. G8 q! ?: E7 f0 r9 \  m$ f/ B
( r9 |# G9 Z; t# g; o#include <mach/mux.h>
: h3 J' @5 s( {+ s* t) ^
8 Q# x* T( I# S0 ^2 L+ ^- ]
! }/ H. n% {' {  P" f% A2 G
! t( M$ T9 |$ K1 E5 o2 j4 q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); l6 R$ W8 M' @# v7 m0 L$ m
; T" [* b) C" J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# N' x$ [% C- e

5 f# \, G  K6 }) ?# n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% L/ O3 Z5 f% B4 a8 b% E2 F" S8 y. n9 ]( e- w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 c& P( w/ r9 H5 R+ G- N8 z4 F0 u8 p
0 I% i- Y* {1 g* N% U$ @#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
! E5 H6 f7 Q* O0 G4 @2 k: n& x# e8 U
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
0 i' z3 r# K; |' E) Q; L4 d% U( z  M4 X+ ?! t

) I# m2 s. ]; {( p; ?4 o: ~% N+ Q' K; N1 g! Z
/* assign the tl som board LED-GPIOs*/
8 O# T* [- r* g% O
' r4 H- Q2 B7 f  O$ nstatic const short da850_evm_tl_user_led_pins[] = {
$ u7 a* n+ Z7 M0 C' _
; t1 W4 _) I- `8 ?0 E$ z        /* These pins are definition at <mach/mux.h> file */
( @2 K5 _& `& j  b$ c* N
' c* n1 K* j- Y& j( B9 V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
- ?1 b  Y$ M8 c# E0 z7 Y5 F; L% H/ c! Q0 v
        -10 c& }, a3 M, K6 m4 p" }( }

; ~) Q( Z% x# x  g};
8 e- w9 W8 b" B. R9 U, I& ^- V6 V! B4 X4 W$ [
4 R, l; I" W0 M) \; K

6 w) g( ]1 u; U2 `9 Rstatic struct gpio_led da850_evm_tl_leds[] = {' t8 v( ~. Z/ z

- ?9 J1 t! p  c        {
0 }$ u6 i5 |  R  [4 D4 Z# o- F/ ]& K9 r0 }( q$ j
                .active_low = 0,
. L2 x1 j1 F: j0 }# k
/ z8 O: V" U0 a# r- `" s3 {, ~                .gpio = DA850_USER_LED0,  ?. n8 J4 e( y& Y: R# y

6 u4 ^+ R8 p7 M8 v7 @6 l                .name = "user_led0",' z8 a# u; n3 F8 a' k4 V' H" L( N

; s+ _% e0 P; w, C- h! ~7 n                .default_trigger = "default-on",5 q& b' T1 M: L# E% [
  e2 k) w2 P* Y, U
        },7 T( d( M9 {; l/ a7 S
1 K6 V) F! o. ]3 I# P. Y; m
        {6 x3 o# {% ^) l3 b

0 L3 y, v) B+ e, c% a% e                .active_low = 0,
! U' B# e2 O: B  [3 i  C+ C1 A7 Q8 O( `4 V& N! _& \
                .gpio = DA850_USER_LED1,
" X6 B: f4 K& k% _
" h. G6 ]" ^6 w* T$ r) ~                .name = "user_led1",
2 ^3 O2 z( B- p  \# I" V
: r3 a* ~( D* p8 v' `7 {                .default_trigger = "default-on",5 f. x( s* m8 p7 _9 D+ i
$ ^! a. {  @; I/ i. X9 U8 A
        }," |- t/ p; Q) E
+ s# d! s% H. M$ T! k* a0 p- I
        {% o% l' c$ W; U3 P+ g4 j

6 c5 I# p' Z$ T6 H8 {" p0 `                .active_low = 0,
: `' g( ~) r8 o2 u' i9 t
* i. Y! Q+ P3 Q8 N8 f                .gpio = DA850_USER_LED2,
0 q8 _; u  H8 z' G7 R
5 Q1 o4 h, J  \0 D7 H4 [. O                .name = "user_led2",
1 Z, H  G, I9 A2 d- r' g9 ?6 |) m8 {2 P
                .default_trigger = "default-on",# C) @! }2 h6 Y$ e' n* V6 p

0 P! q: ~! z+ e' E) f        },
0 a9 t6 L2 M/ p9 l( f6 P
* G7 Y% ^/ P( t0 Q3 z) e        {* q6 L; t7 Z4 c4 \: v
, d0 a- n4 E# a" f$ g1 L
                .active_low = 0,
1 C) x: e( L! D$ `: ~, u: ~. j% ?4 Q+ n; r9 H
                .gpio = DA850_USER_LED3,
9 \. z$ R4 `" p  }% i; J- {  _7 p
, Y1 N& K6 L/ }1 k; t                .name = "user_led3",
+ ?4 X4 p: j% l" z8 [1 h; G+ |8 T6 C! h/ [- @
                .default_trigger = "default-on",2 F- M0 r, h' s

8 |$ J, |/ @& ?# M" c        },
2 u9 j6 w% e4 X5 Z
$ b$ F: U' M% L. @; T/ g7 |        {/ g3 v9 \/ x# f* M$ y& C

* s9 `& ?# Q- S" r                .active_low = 0,
- l8 z$ Z/ [; ^' G4 z& F" S5 Y/ |- ^8 j  m% q( u
                .gpio = DA850_USER_LED4,
2 g! d* q- @! D! o$ W& _; q4 v) y( B$ _' f) L
                .name = "user_led4",
$ t  C1 e4 ]: F/ x" ]" A. O9 H
$ A9 u8 P# \2 ]: G1 j! ]; x                .default_trigger = "default-on",
5 g( ?4 ^. F5 U! ~+ }  V$ l' m3 ^3 ^- T" R8 e+ j9 g9 @
        },
# x& ~  g% F0 |; E/ V4 M( x8 t) [' Q: U
        {: V! t8 x5 z2 F1 Z
$ N' J. J" h, f! |& l% t- z
                .active_low = 0,
  X( c$ F) T, E
6 D1 u' p% B$ i6 Q7 A) ]                .gpio = DA850_USER_LED5,+ @' a1 y# s: D- P  V) |

0 @; L& ?+ g- X% _3 D                .name = "user_led5",6 P& D" D9 ^4 K2 ~6 B/ d
  M. y$ ~0 _, \; T; n6 v
                .default_trigger = "default-on",1 x; ]1 ?8 Y& n- \
5 B' y: r6 m! i3 [/ d% D
        },
& m7 j5 r# s; W6 _( H' W. P2 O8 B% {7 i% p0 `
};
2 v6 ?9 @0 Z* r0 m1 p' u7 f9 j7 a
+ o& O" T  L2 f' \+ X/ ?/ l. X% p' O: [) }2 s
, f) c( d' i2 ~: C6 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- K# O2 u! f  V& {. M& ~3 w% ]" ~7 ?" k3 |: w% L% u# a
        .leds = da850_evm_tl_leds,
" a2 @" C* ?1 d" m. e0 k9 N, x
- F: R& Y# J+ x7 v: a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) d: o' P. O7 Q, `+ [! G8 K
% [* z& h$ A0 [! ^5 f  Y
};
' |! g* ]# X& F; T! |6 t: ?/ Q! J# z9 Q; w
; ?* O: K1 l: A- ]/ c* m
) f0 \! V4 j8 j  r* @* A
static void led_dev_release(struct device *dev)
4 Y# z6 ^0 Z$ }8 v- }8 J* X+ v7 c, i/ \% Q& K' x
{
' p' C- f& p, q0 @4 V5 ^  \/ z6 U0 n8 E* M3 `( K9 k3 a
};1 @/ p5 r( v5 m! a" y- E0 a

. V2 m( y4 w( U+ r2 G  ^; I7 Z& }  ?
+ ^+ `& w3 g$ c# t
static struct platform_device da850_evm_tl_leds_device = {- H3 L- I6 h* N+ n3 w. v

/ P6 k. T; k4 H/ f        .name                = "leds-gpio",% u9 Y4 N% w6 ?8 ?4 ~

2 N) \- m$ Q2 J' w8 R# `        .id                = 1,2 J$ M( L2 M1 Z  @# h

, r) W' W& c5 F6 F0 Z        .dev = {& a1 G4 z# w* s5 ^

3 `1 j0 z' q- e3 A! A+ J; }                .platform_data = &da850_evm_tl_leds_pdata,
2 M9 T9 `5 f* g% D5 d8 X
8 c  N0 Q( o5 j3 W  H                .release = led_dev_release,
5 n" e; Z  @/ [0 ]
2 v8 M5 i9 t3 I" z) Z# W1 w# x) `; k        }. c' G- e; i# E" M- b+ Z
' }, Z7 C- ^/ |$ p6 q$ Y
};
* Y$ P4 S& V1 e  n& j
' @5 S: z2 P& j
' {3 c  W( r8 o& Q' e3 |, @( F  C5 M& r4 {9 C& [" u+ g
static int __init led_platform_init(void)% F4 W& r- T: ^+ j

: w- ~; h' S8 D3 [4 y& k* a  v0 v! v{0 m! F' ^4 ^8 G4 D

+ s* X% c8 p0 n7 n+ s! T+ C        int ret;3 s9 A: k4 l4 h! ?4 \

1 y) K- `* s* ^+ z+ V, ~#if 0
; y9 m8 m1 I8 N: O4 O1 I+ v2 c& i1 B, A& b! e+ y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 z( f7 F) R- X" y4 e2 R0 ^  Y! d1 c1 l- `% ]! e. F9 N/ Z6 b0 t
        if (ret)1 r4 v& w- s/ k
$ n3 i; q" a  g7 k2 v* y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 ^4 d7 e; e8 Z8 |: b' ?) `- Z
: U9 ?# Q9 M( j. p- j# Q1 S                                "%d\n", ret);3 {% Y. |! ~, ^
- L1 l8 G( A! m  L
#endif
% G  L$ j0 f% B' V2 C4 Q0 F* p* A* u2 m; R$ s2 p8 z2 S
        ret = platform_device_register(&da850_evm_tl_leds_device);
, }. U8 x$ i5 t& m7 Y
- l) D0 H3 V5 D* A; ]6 P        if (ret)8 Z6 R) }# H' z# l

) J  ]  [7 P  \8 O) I# @" R                pr_warning("Could not register som GPIO expander LEDS");
: u$ }" I0 i* K1 c. U5 g$ y6 }3 N) ]7 L+ k; \- A
        else
+ E& c* {1 D1 i5 o" |7 W
: D! v1 n9 M' ^; z( V4 m                printk(KERN_INFO "LED register sucessful!\n");
, L- i* Z( `: K" F- q4 o; _3 ^4 t0 `* S
" M  t& v. ]2 y

3 L: x8 k5 I+ k3 k0 a: k- \' V        return ret;
4 u' Y8 C7 u2 F1 ^
! `1 i. O) {2 H# X3 [}
' h$ m' I+ h( Y. V# d) U& a# \
1 h" k+ T, i6 M: ?( C% S& k- k# J9 o, C

( f. M: H$ q5 V. \$ s3 Vstatic void __exit led_platform_exit(void)
# t  j  Y- A' [( ^5 y7 S2 `; E. l4 M6 m4 t3 d
{* i$ r+ h; v* h9 h* V
, G# F: n$ \# m# I
        platform_device_unregister(&da850_evm_tl_leds_device);) R& ^$ \6 o0 e' {7 }

  ~2 l7 v8 h+ s% G! T1 \# t% r5 }( }$ Q$ A
, W3 ^3 y2 Y9 {; y' A& ?
        printk(KERN_INFO "LED unregister!\n");
: O8 a) Y% e* j# G2 l' ?) |6 j- r) z
}
+ w4 k) X5 r( r; U9 B/ \' `3 R# @' {  X- s* C- q: R- W; b

+ D2 `. D) m/ C! r3 V
# {6 g: y8 e6 B' w9 Y; Vmodule_init(led_platform_init);
" S* n; T- x! _5 ^
/ E4 n. `1 r6 u- U3 cmodule_exit(led_platform_exit);* U( ^7 a* b+ s6 G  _$ m  h6 T

7 Z, Z% n; z6 o1 |. K& o
4 U- h; T- h! {: |+ F! y! T3 a3 E
9 M9 ^1 F5 G: J$ @2 m. b% DMODULE_DESCRIPTION("Led platform driver");3 @, b. C' s1 b! u- t0 z; Y

$ Y0 X% D2 t* p1 eMODULE_AUTHOR("Tronlong");% y( l6 ?9 v8 \5 P1 D

7 J3 d2 ~) _' K) ]MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:329 K9 f( R( r, ]) C& U9 k
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。7 `: k. j; M& t' Y- G
...

+ A& L- z& s6 C好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
( p( R) J+ ~0 jhttp://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-7-9 19:01 , Processed in 0.045753 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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