程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 ; U+ t' i" @/ |" ]; |
/ @# w: B/ C: }, m% q
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的% [6 I+ D1 c# u% r7 E! z
  T; |0 H* l% U1 \$ F0 e
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?1 r$ a9 F: i+ {- c

' f$ s2 A5 l" ~$ @

本帖子中包含更多资源

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

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:140 I/ P( L  j' [
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
; [! k* S1 X" |
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
3 x5 [% W  ^) l* o8 R; z#include <linux/module.h>: ]' A2 q+ I# O8 `6 H4 W6 R

  M7 i3 A# g" I/ d6 ?5 o#include <linux/kernel.h>% {! ^3 @# y+ V7 b! d
" ^9 i1 o4 P" O4 t; B# Q  ]
#include <linux/types.h>
: s$ `/ k; ?) d, U% l. u9 `+ t3 g3 H( t
#include <linux/gpio.h>
8 b& J0 c  c# n9 u5 _( q+ k* |/ J' d1 \* Z" ?6 @
#include <linux/leds.h>! |- D' R9 C0 J% A3 U# X' u
4 [2 y! \6 i, q
#include <linux/platform_device.h>7 f, m3 g% [! |$ Q8 Z# R2 l/ p$ S
2 n8 N6 r/ C/ s7 _9 c

3 `7 @7 w1 B8 T- x# O% g* W* u3 d. k7 A5 g0 |
#include <asm/mach-types.h>4 s' X7 Z& \# n- W9 o. G

: v. a4 v' U1 }( Y#include <asm/mach/arch.h>: e" {/ c7 T: D7 R3 d% E
$ Q* V4 N+ u+ ^2 A' F
#include <mach/da8xx.h>
$ `$ X/ E5 F$ b. c) I( P7 U/ }# W' R! @' l# p
#include <mach/mux.h>
/ _/ L6 y* F, I6 O* t& m# e8 {" ~1 O' w2 i! c

0 U7 u  I3 G4 D$ ]$ y# O; C
1 O, d- Y- \' V- ^. A  X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 @2 ~2 v" ]3 R, S" }) }" a% T2 l0 H

. s& |2 J8 E- W4 J  C7 n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* y* N. w3 x% _  ^( Q' m
2 A, E, Q: l! H- {0 u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. {( y3 ?4 E9 c- d) ^5 p$ N! }6 v/ V% {" o! |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. h* F6 p8 v3 C3 q: f8 o0 v
- f- k: z. S+ \0 F" S* E9 }#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
8 W" T/ C! ?4 A+ D5 g  @: ]9 t5 O% D) ^2 y8 ?* ^
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)# h  ?8 ~$ [3 R$ b! Q

4 V- v- W. r! b! G# k2 s9 n- Y" y$ r2 R) x# {
8 D* c' |# {  v- D
/* assign the tl som board LED-GPIOs*// u$ }) l6 K; Q0 j! J+ }) y

. t* c. a9 E8 l( r' c% Astatic const short da850_evm_tl_user_led_pins[] = {( @3 o1 N/ Q& E, g! Z

2 ~( z$ O+ V' ]) U        /* These pins are definition at <mach/mux.h> file */- {# F7 P% X+ a; h& t
9 w7 Z+ B% }6 \9 ]: i4 s. \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,: e3 C5 n! y  }) G' W
! T* P3 z; k8 B1 G( d) M
        -1
; v; ~8 p7 P$ a; v* l- V+ @( m% ]6 h) @% T! b# o: ^' c) c( |
};0 N+ u/ e. x5 m
( J7 ]# R! K( O7 l/ N" @* F

8 c  _3 h8 [; {7 f. O
6 m; u$ G% `' ~9 I, P" Kstatic struct gpio_led da850_evm_tl_leds[] = {
* D2 x; ]7 ^, R
+ a+ n5 ~. p9 Q1 o, e        {: F4 _" p/ |9 p: C2 w# k+ e( ?
9 H% d' N+ d( p
                .active_low = 0,, q% j7 ^3 P1 S! q( y: m  D
  T0 Z9 T+ m* ~+ [; w' Z( E' G$ f
                .gpio = DA850_USER_LED0,
" i4 d3 n5 B) K  J/ W" u  B) A$ N9 r4 s$ A
                .name = "user_led0",
' \  M# M5 t% }- F1 Y( [) }, p# T
                .default_trigger = "default-on",
- B( G2 Q8 V6 ]+ v& t$ `/ \6 f' u" r
        },& J+ b3 B+ A3 T% c& ?

- e. J& P' @% B* K5 T6 R0 R- P        {9 [& z+ e' i( T; ?, U
. ~3 g$ v% p4 n0 t
                .active_low = 0,
- Q2 K* b3 I6 [/ F6 e1 n
5 O/ p! i: A) x: t  q2 T  W) E. X! k                .gpio = DA850_USER_LED1,9 ^* A, m- e8 n6 F5 I. ?
2 x/ L3 B8 V2 Z! r: Y5 V* n
                .name = "user_led1",
6 z7 A$ B$ V7 [. e- U  j
+ h+ Z; z' l5 w- O                .default_trigger = "default-on",
8 ~0 f8 ?' O3 e# [2 ?& F0 [
. ~. I7 ?, _  ~        },
3 q& l& {% n; i$ b" a; |9 b
1 G2 z# j) I% @        {
$ F% J# o( J# a$ i0 n1 x3 J! p' H5 _  ~; a( L
                .active_low = 0,/ r2 C5 I5 v6 K8 z3 }6 j$ ]9 v

2 f9 G" F2 c: c$ _5 ~$ C9 t                .gpio = DA850_USER_LED2,
( e, I9 a8 l* g3 B% D
7 q: w# T, K7 u( a, n6 x                .name = "user_led2",
7 d. q+ A9 c/ i+ ?1 r, [- O& W6 r: I7 f) @
                .default_trigger = "default-on",
+ W! Q# Z7 |7 I0 b) X
0 |$ h6 T9 O8 ^/ |" n        },! c; z& x5 P/ e9 ~6 S( Y( H# M; |
+ B% W! x/ _7 B2 W
        {" y; h9 ~$ i. L% j/ N" N# a

) d* H% b  N( h) \                .active_low = 0,
: ?( e5 T2 n" l' @: ]0 l+ h# Y. V, O! W3 s1 h' E$ O% S/ D
                .gpio = DA850_USER_LED3,
5 @3 `+ M  r- _; v. Y, n. a4 w: u+ z$ B+ u7 Z% ?8 s! G0 a
                .name = "user_led3",5 R/ [% E& l" S& z3 W% Y
5 h- g: Q+ T, X7 ~
                .default_trigger = "default-on",
! m$ ^1 M8 W! [1 Q1 V0 u/ o# u% B. {4 T
        },
. U: f$ Y; j( m/ c. h3 F% R0 x* v0 V% O1 Q
        {; h5 @# S) f" G; O3 K( g  |+ P! C

. H- j  w* V/ u, k                .active_low = 0,
2 N, n4 S" _, I
7 q7 j# _8 e+ z# c7 |7 Q- q                .gpio = DA850_USER_LED4,
/ |3 b4 h5 g1 r
4 E7 r) t) r" m. C" i5 I0 ?                .name = "user_led4",# F) V& w; \- y' K6 |& t% y: e$ @; J

  q3 u0 o' L, a                .default_trigger = "default-on",$ h$ q6 J- S4 m( s% p% B) R
" y/ H, D3 C7 C3 r- J
        },
2 f3 f+ Q& A9 w5 V+ B" ~, `" f4 F$ x9 `  N# o: G
        {
% T1 V5 G7 T5 o* a& B: {3 U) Y5 |( u
                .active_low = 0,! z' h1 v5 i/ r5 a5 B

: y6 P3 A* @/ D7 i8 F                .gpio = DA850_USER_LED5,, S6 _' e4 t: `' O2 s# Y& S

: Z  D4 ?1 Z% f. ?# B/ S2 c0 J+ A: F- t                .name = "user_led5",
" w# C4 a6 Y& l8 u0 @( T
& U$ `9 }5 [* L0 C4 {' K/ \6 p                .default_trigger = "default-on",
7 o9 I! B' L1 f0 o( _1 A3 D4 }& z, F! ~# }  ?/ |" R
        },
' d+ l6 h5 T- o. _0 N3 L" f' x# d2 m$ b* `
};
0 e+ f  X) v  h* q6 [
! W! }8 O7 M4 O) v4 L- n, I2 V0 Y6 n; \1 l
( [! x. c$ r# g; p) U- r% T5 s/ w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 G6 f$ ?! l. H5 U
) @* \- h( J" t. P; J
        .leds = da850_evm_tl_leds,
9 u5 L. K% A' h6 T2 n4 y  o+ k5 _3 i) z/ m- b8 Q4 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 d6 q$ P2 K( k

8 ^+ V' G. Q1 ?& }0 l$ ?" D3 `};4 V8 i  J" v* e7 O1 L% n
! L) F7 y; E8 z' i! U  B- ~

- N# ^- P9 O" X$ _( E% }1 B
* T5 D" Z* i( P; I% O& |* R9 {static void led_dev_release(struct device *dev)( ?/ L+ b7 [8 O" e! V8 c) K
9 D0 ~& c( f) F$ O, G: F
{
6 [) D9 I8 H. [& z. E/ c! O5 F5 _( O  b1 p0 u  x  |
};
( l' Y# W0 h- c8 Q! [1 c& Q7 @% M5 q- Z1 `9 F

  H+ e( y, n5 ?( l: F& X
  P4 y$ ~2 v0 f  }% F2 Cstatic struct platform_device da850_evm_tl_leds_device = {( F4 g1 F( H6 u6 w/ B/ I4 j: E- P

' N0 V3 a# Z" X+ ?4 O        .name                = "leds-gpio",' o5 T, t& \( g2 w
. @; c& v( u) X  p. [- `5 K/ H5 ~
        .id                = 1,/ b& H! J# [( _4 R. Q) n: z
$ f* Z7 ?* `/ L# {% o; k7 m5 `+ O
        .dev = {
5 m( X1 b/ m. A4 X8 _* \
: Y7 I7 Q" V4 v" N& ]6 t                .platform_data = &da850_evm_tl_leds_pdata,
7 K9 {5 B% D4 a# v! c- L" \* r: G0 d* }3 q
                .release = led_dev_release,
7 }/ V4 B! N5 L4 G! [+ v; x3 p; h( z& T8 E
        }
; v' x+ C7 W/ E; h- Q- z& A; d' @  i9 r& }$ z# T- r( A1 K
};
3 h1 x, C8 I/ Y9 }- h8 E! p. Y
: R7 A: Z! T$ E1 q, m5 d2 T) U
1 r  h* `$ U5 Q. z) G
* y, E* ?$ M6 ^. G6 d4 A4 ^, dstatic int __init led_platform_init(void)
  e& Y' x# `- P; G/ O2 s; U; ~% ^
{- n7 A' d3 I1 V" u8 i# |% c) D$ E

0 O5 ?% P/ S& H$ G2 m/ |% Y! f. C        int ret;! H- Y, {9 I& U5 R

0 i7 n4 L8 w( D  b; ?#if 07 U9 D, v+ z, z

( g. Q; z+ l7 [( b7 T! E3 w2 t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& |* X; w- ~7 d! n! e$ m- Y* e* G
! X8 D* Q: q% P6 w3 _0 R7 N        if (ret)' r; E; j& F* j' H3 u

9 s3 F7 R, t- d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* H, @8 m8 Z5 ~; B
" P$ H: J; m' w9 ]% {1 R% [/ z- d                                "%d\n", ret);
8 h; v% _: }* T% A+ a5 a+ ?9 i/ v* Y
#endif! I' L( J0 n4 ?% x9 Q8 V
1 p! V" ]% V" }% }& U. F9 R
        ret = platform_device_register(&da850_evm_tl_leds_device);; f+ g8 q7 H+ N, F

7 R" B4 O% `- Z' ]        if (ret)* A8 M# q: m: m

% R7 _. M' d! t                pr_warning("Could not register som GPIO expander LEDS");2 ~7 I. M% L8 |4 D4 }1 i
; {8 \7 N* V8 ^- Q# ]% n% s. t
        else/ x; @% r' p! A  C+ }

1 h% j, k. r2 i1 G  E! k* z                printk(KERN_INFO "LED register sucessful!\n");
6 g' G3 P1 `  i) w5 a$ f
$ B& B% k& c6 m8 x: I$ ^* s- J
/ `3 j6 l+ p$ H9 [/ }4 ^2 H" L% ~1 d$ M9 l  I: C' c
        return ret;' m, W) D( s0 j- R

4 K, B0 W0 Q5 W1 m) B}/ ~; S4 M1 X% k3 X; A2 ]

) L+ o+ g3 Z6 p+ R7 }- z  z& p
2 q# {3 q- }) `; g6 u/ i0 C( Q1 `& J* \& {, p; B+ l0 U  x
static void __exit led_platform_exit(void)
0 e) O; ]  G' C7 M$ i8 ]! C0 n# B1 B, Z9 f9 G9 N
{# j; F2 u, ^& k' t, _* B# j! }

, J: c  R/ c9 z# v% F* j        platform_device_unregister(&da850_evm_tl_leds_device);
/ y' Q" ~9 B2 C4 p
( X% i) h1 P$ K) ~1 S' w* }: v1 w! m* Y
! i! q; ^5 }6 s- V0 I, ?0 u
        printk(KERN_INFO "LED unregister!\n");
. c" `3 s9 N9 A3 y+ `8 {6 X* A3 {
7 E' {9 D0 X8 h9 L9 b" E+ d8 g}
  F: u5 L: N4 s. ~: t$ E( S
# N+ f" j8 K( x6 ^
1 p; y9 E3 z6 }2 K: G6 J
  H6 Z2 Q. h' C2 h$ E( |; h* z9 o7 Dmodule_init(led_platform_init);0 m& K6 A7 d) ]/ n1 Q( ~
" ~* f8 @+ A  L3 }( F
module_exit(led_platform_exit);4 A8 k' P# r( q1 M

* v. h* F4 T; |. `3 M5 R( }
$ \% F+ H: {2 ]4 ~4 K' h9 i/ p
% ]  n% y+ V3 t  s# HMODULE_DESCRIPTION("Led platform driver");4 P$ i* t) O& x5 T" y

, P! G" J7 f" K, v: |MODULE_AUTHOR("Tronlong");
! h% `8 J/ z4 e! b" o" ?3 f
+ M8 D9 E0 Z) }+ @  W! YMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。" ]3 v1 r  h5 R( A% a" ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
$ d' M& [$ v( h您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! v2 i* q# b) G( B
...
% @  ?" j3 G8 j+ p; A
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
% A: j$ }+ X3 a- j8 ^6 s% Fhttp://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, 2026-1-30 16:33 , Processed in 0.050578 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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