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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
: h1 b* V4 ^  s9 G) D, a8 @: U0 m  ?, m
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
& x% V. @* F' H) C1 w7 \( z
, q; U; O0 T1 ]; w: Y' ?( M% `+ T之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
  X% Y" [' n. ^6 S3 f, h2 T/ H# {9 w& j; c- S8 T

本帖子中包含更多资源

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

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
' F  N+ j2 s, rlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
4 h. [4 s' V* `9 I9 j
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:/ |1 O9 x8 N- V3 }6 W, `
#include <linux/module.h>
9 J4 p9 h+ @5 X3 Y  A4 y0 X# B
6 K) z% u# t2 [, ?" f% J- D' Y#include <linux/kernel.h>
' z$ g% j2 @. z! T
3 X) R2 w' O1 K#include <linux/types.h>! ]5 ]1 p7 H' f9 e1 m" ~
1 q; v1 K6 A- o' `2 c9 r" S( O
#include <linux/gpio.h>
# i5 F2 n- w) V5 z' a; G; _7 K" M8 H, M' l/ A5 o7 O/ [: o
#include <linux/leds.h>
4 z1 Z/ d" I/ I+ e9 o& J; _* [9 K! e/ j
#include <linux/platform_device.h>* h4 O7 Q: d7 A
. d- R: i- i/ X0 h& u3 F! V9 {. E1 R' h

9 T+ O# S2 k  m( \4 A8 U, k+ F( \# w2 L" c- J
#include <asm/mach-types.h>* ]7 [3 P: s* L0 w2 r
+ Z7 @" P  ]& I  n
#include <asm/mach/arch.h>' g3 G# z$ u8 r) l! p
9 ?3 J3 G* R9 j2 S/ h& H
#include <mach/da8xx.h>) p7 }- a- ^: u. a

$ J! H# Y7 G9 K! d" n#include <mach/mux.h>
- e0 M) N# |% c" ^: z9 r
5 |: y$ i3 P! Y3 ]! K3 H
; F7 X2 B. i% v7 ?3 `2 I
, n/ P3 V, a' Y5 B3 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). X; p* h5 h$ a* X4 ]  d0 g2 A

) _2 }) Z* r* H  z( c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* _( b9 U: r0 {0 S3 X8 c
9 l9 x) r3 z2 X) P2 j# l! E  V; k8 [% |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( I' |% x% u- g5 ]; K3 p. S- {0 Z: ]! i0 G/ T" c( x+ t! [
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# m9 O9 y& f8 J! D
$ S5 {3 @, H4 z2 C* E& O- ?#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
/ C% q3 q8 R! X6 C+ z, ?$ `8 _- F  }& C
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)7 K9 s' b; O7 |% R; Q
! \6 |+ a9 T" J! i# p  Z" m0 o& a# f4 T

- q$ z9 z8 Z* B- A, c0 |8 h
. @& |# {0 U8 |/ P' x  e/* assign the tl som board LED-GPIOs*/
) r* S. J. t  x' }% V8 D9 u3 u8 ]; h) Q* X2 h; q% B
static const short da850_evm_tl_user_led_pins[] = {8 @1 x; f& L: Y8 x

5 d9 \( X+ o: K9 b        /* These pins are definition at <mach/mux.h> file */
. z4 |5 ^; f' G: w5 l$ t/ L
( z; f4 y$ L- x& {5 s. Y5 Y, @        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
  z; r& o7 z8 A  ^2 K
" }% T: y3 c7 a3 r: j8 F        -1/ x+ E' L- j# J1 f9 Q
9 v" v8 |' m# y! r
};, o% }& \# s. V
( a) {. }1 ~; S. b# Z
; @* M; Q. t8 |) I! s9 v
$ o9 B5 G3 Q7 {! l2 {9 A
static struct gpio_led da850_evm_tl_leds[] = {
, ~" j3 c* U1 F! [7 N+ x% Y- {3 E
        {
) q. \/ B4 J4 j2 ^# R3 x( n: f" U6 S: o- C
                .active_low = 0,+ u$ j) P7 X( Z1 z) ~3 a

/ p3 v- ?% J; o4 U! ~6 j! ^# J                .gpio = DA850_USER_LED0,' w8 g  e, ?: E+ ^' F

. F. m# Y; x3 N9 F2 L                .name = "user_led0",
# i  }1 Y' Q2 X& L6 a: w- ?
' u, R  K% ]' X* R                .default_trigger = "default-on",
, j6 y1 K. L9 Z  q" v6 \5 {! Z9 v2 g$ v
        },- R5 L- R6 h0 F5 `. z; Q
2 q9 I, ^1 i3 {6 \* W
        {
! D* p# q# s# m* c& L
$ P0 _8 z. a' O0 u$ o- M1 K4 n                .active_low = 0,
- G& Q( Y) Y+ {
, j: T3 t1 W* {% I. @2 `- [1 I2 a                .gpio = DA850_USER_LED1,
0 u: y  \* y& y( S6 E  |
# _! {) a! e8 k9 N1 b                .name = "user_led1",
1 c% M  C' H# G3 P0 v/ D: M8 Y6 K" U) N+ Q! t  c" H# F8 k
                .default_trigger = "default-on",
: P/ q$ D, u" F
0 M: b" T; |  Y        },* U$ u8 B1 f6 A. D) }+ I

: K  @  [2 ?; Y8 Y4 u        {
; f0 J+ t. t$ d7 C' x6 f7 \$ ]. T; R  M' P. t3 ]
                .active_low = 0,* P7 t* E, ~1 v  M; c  T
0 I5 N$ k  n5 s. n
                .gpio = DA850_USER_LED2,
6 _- `' `  s  O1 F; R
) W9 b) [. y2 U: z2 _: e9 o                .name = "user_led2",, O- [) @: m1 X0 ^$ g
( h+ Z: y! |" A8 w8 r; o7 n% z
                .default_trigger = "default-on",
) K7 |0 C: R1 \8 `5 N* v8 a; x: p
9 F' {; K# M3 Y+ R        },
6 C( W1 l5 Y) Y0 S
/ E0 S, ?7 u# b$ N" n' [8 T        {
) H* Y' _: x( T3 W" s1 N/ H0 x6 u
                .active_low = 0,5 r4 `- S4 r- A' N: l! S3 q
' P! H# \. @- v) P7 C: o1 o
                .gpio = DA850_USER_LED3,
3 S+ f# A# X) ]6 M+ \! A8 |; \8 \7 O& [5 w: V
                .name = "user_led3",. U9 }* R; t0 \  ?

" v- l) @$ W3 N3 q1 m* P) u                .default_trigger = "default-on",) p" J2 @& _: I$ t5 m

  g* n. O! G* M4 n( `, F6 [2 R        },- b. U) z: h) b, f+ H1 K# J

" U. E! Q8 z+ m# r  m        {
5 w5 e& D+ V' r# }1 C: k8 i' {3 E
# i7 N, r1 @& }- J3 @; `                .active_low = 0,% H8 m- f( `7 s+ B' q2 w
  _- |6 P! K4 _% w( b
                .gpio = DA850_USER_LED4,5 S4 d9 s- n( r5 W+ V
% ?0 T  ^  h; w* M, v
                .name = "user_led4",
4 z6 Q( q1 K* w* q9 B( T0 `- n4 W
. A2 y3 p  X$ ^& O: U                .default_trigger = "default-on",- b7 o) X$ g, L) J* [6 u
; |1 J3 j* E$ {' E) @
        },$ G. N% ]/ g3 h9 [/ d

1 ^( o5 R0 i- ~/ P2 s0 D        {( G% x0 Y. P/ _
' x1 ]2 Z# I- g4 Y
                .active_low = 0,; l% I! }2 e, f" r* h. n! L
' c. U3 }" \& j0 G6 Y& L& Q% v  X
                .gpio = DA850_USER_LED5,* n: I0 I- j/ X$ c- b( F% t
) T2 x2 Z+ W# R4 A! Z
                .name = "user_led5",
7 y& A6 t9 A7 m1 Q7 _& @! l
0 U- }/ J8 g. c- |' \                .default_trigger = "default-on",! r# k2 \. @) r! w$ I& B) E
2 J) Z; d; A! M2 {3 v, {
        },
& L5 g7 O5 V: B* w& ^  d+ d! ]0 w. t
};
5 Y0 [; D- E5 t, W& P% B# K1 O! [2 X8 b3 T1 l$ y3 h8 M

( L1 [; W; X( u2 h  m3 e" `* _" C7 m9 T. |5 O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" ~8 o. f4 ?) c* A, J! W

' J- e+ p4 C2 _/ g7 Q2 i        .leds = da850_evm_tl_leds,
3 N1 G9 I" h$ d( D7 V' ?  i9 G- O9 o: I6 f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 |/ ^( x. R, ?* B/ H) V: e
9 M+ q* q' \- t
};4 e3 w& O+ B" a6 S

, V% T3 @* Y' }, e! Y2 o& o% f( G" C! Z; n0 l! T

$ [# \" N6 u% A" D8 rstatic void led_dev_release(struct device *dev)
0 s) k# f2 ^( ~7 c, I, x7 N, z
. U4 `" t3 {, K! X{0 P7 S) ?- h' n9 a" t

: s! j1 n9 f2 K};- H3 P) ^3 l; ]5 A$ W& {

. K7 d- v0 J- v- W! t6 j  s' `8 r0 U' w) x* i# y  r" ]7 R1 C
( z+ z4 X  a; O* |1 H, ?
static struct platform_device da850_evm_tl_leds_device = {
0 Q  F! ~  D9 O6 W4 \  L2 R, w) q. _; r
        .name                = "leds-gpio",+ v# u- k/ s+ S; ?, b8 C+ S% l1 t. ?

2 P0 q- d" Y4 S9 G7 m        .id                = 1,( H5 ?8 ?9 Z. D, c2 Q

( F  c9 s" p5 f; q- v- G; Q# U        .dev = {  ~- @! V. I/ v% ^3 Z
, f& s% q* i* m
                .platform_data = &da850_evm_tl_leds_pdata,# O# z" q( t9 I& P
+ a6 f$ }0 J1 E: h- s
                .release = led_dev_release,
# m+ z- }3 P& N8 s
- j& B- d% d/ A        }; v7 W- w7 [9 x5 A; F+ v

" E/ B' z: F- X6 L4 K/ C};
( ^. e; D' u2 a5 C# Q' y  z1 p9 N" ~0 n; O1 S8 z
, i* L5 s4 R8 g% O, F2 M+ K( ~. O' }

* M- X! J- }  R7 bstatic int __init led_platform_init(void)9 f+ D% P0 s! `! d
# ^. O% J/ f) K
{& ?. E' ^, R0 ~1 l1 {

+ t; @) ^" b8 }$ W$ u+ U+ D& R        int ret;
9 }! E; d- @1 I( f- R) f" \. Z8 H7 V$ L. I6 d7 \
#if 0
7 k3 ^: g: v- }2 W
0 J' \8 u  T; ?: J. o( b; X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 w) q8 M. P4 V% Z
* E& c. X% E0 u/ l7 D        if (ret); w2 Z0 k/ j) v- f9 z$ M# J

) V2 O5 k3 x8 o' L. O; @; E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' ^" h1 p) \4 B+ L% Y# U  u4 [, S5 B
                                "%d\n", ret);2 a& W: ~8 r5 m# u0 M* ~

6 p7 V2 r1 o/ Y: N' s#endif. [. T) o% K- ]9 F) u

( u: C+ X1 {9 ]7 O$ z" _: `9 q        ret = platform_device_register(&da850_evm_tl_leds_device);
' _2 C% P; e$ @" D6 H
% R9 A8 g* j3 z! q8 h- V        if (ret)* N2 C, r3 G0 A, C; L0 ~+ N* H
4 h* j% X' U$ @$ s7 D3 T- d. E! N
                pr_warning("Could not register som GPIO expander LEDS");
  H& P7 z$ {- l; O# g. x& p; l
. h! {/ N- F* l  H5 _- W3 l        else* n+ b& J% F7 w+ l3 D' Y1 G
9 }% U" ]7 l7 @$ N$ S9 l& Y
                printk(KERN_INFO "LED register sucessful!\n");
) {% ?: _( Y: p- m1 G8 W7 J5 H4 q3 k& \) H& [  H. j
. @: [2 z0 G9 w4 P4 Y- f9 b

& R& D* N3 _4 K. T( ~( K1 ]: d$ \        return ret;
. p0 r1 n5 C4 h/ h* Y# L, z. N
+ L0 {' t6 l4 b}6 V8 ~& l7 o7 }
. D" M- e5 n6 P) H

6 B; ]5 H- y9 ~" R; Y0 ^( L+ V% D  B8 m% P6 z: P+ |! ?
static void __exit led_platform_exit(void)$ N- O$ P7 X8 D6 j
, S6 s# d, S3 s0 P
{( u- W8 O/ J8 S- V
) _2 E& J9 Y% A; ?& Z
        platform_device_unregister(&da850_evm_tl_leds_device);
5 R6 {1 X3 V0 Y0 Y
# \7 `: B' [# C8 a& [1 [: I4 Z
1 V& m0 E% |) n
* j; [  y1 w# O! S        printk(KERN_INFO "LED unregister!\n");; C7 Z) ~) d+ O" m- v6 j

; ~( L5 d* M8 ^) E  e, _% |7 R}0 G0 U+ b# l) Y  n7 c" w

: p9 C  s& B  d3 V& X
6 X3 L6 t9 M! W; C  X! Z4 A) s/ m' D) p: E# @% M! L2 }! I
module_init(led_platform_init);
; h6 j5 {4 j& g0 q. M5 S
7 t+ a/ p! ]/ t6 h8 X* t7 C& g& Lmodule_exit(led_platform_exit);
% Z6 e- `- x3 {" Y3 P" D; z( |" t' `3 ?' J# ~) c& S& a) T

* y* c7 S; y# |9 X
% t% S0 o' R( L( DMODULE_DESCRIPTION("Led platform driver");0 g& f1 H; @/ X1 @
, s) T- l6 _! Q$ N
MODULE_AUTHOR("Tronlong");
" o' }/ |1 d- D, A7 Y6 R5 e+ z8 ?! W- v, f6 M& k7 H" s2 o  h0 g& L
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
; U4 C& a  H6 v/ T3 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
. U7 k- g* Z3 H9 s$ {您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
% B1 [( B" {8 J" R6 S! A ...
5 m4 A. z8 t; t2 I( J
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
" m8 C6 N! C/ [7 C0 Yhttp://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-9-8 16:09 , Processed in 0.042362 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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