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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 0 ], S; m" Y8 x% t0 {
) Z0 T7 z' a% s& J6 D
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
5 W# v, A# \, I3 I# `$ |  N
$ ~/ t$ s' m' X- G; r之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
2 w% {$ N9 J! T  g! W- s
" r6 D( s- U. _; a: ~- _

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
7#
 楼主| 发表于 2018-12-17 17:29:12 | 只看该作者
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。8 b* Q& m8 F0 U* K' J6 j3 w# b
http://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:323 ]2 Z1 Q" g- u1 z% E: R
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。+ H: L+ I$ D9 Y
...

# |" V! p7 c: c  [5 Y- y好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。8 O3 `( d+ o' K+ F% j" A

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14( J' d6 ]% m  Q1 x; k$ Z4 E  L3 s, G
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

  W' z9 S$ l; b0 b我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:* c* a$ w9 v5 {6 f1 r7 P
#include <linux/module.h>; S- I/ I. R* J2 B6 L4 D

/ `+ B4 ~* H8 r) }#include <linux/kernel.h>
' w  W6 a+ q0 Y7 r5 {3 E2 b1 r+ u/ [+ ?+ e
#include <linux/types.h>
' a- `+ Z% [; g( t+ {: }
+ T# Z* Q) [$ A#include <linux/gpio.h>8 w2 G8 g) b: P: K" S9 v

2 p7 e, d/ q3 ~2 x0 ?' [! o#include <linux/leds.h>
$ ?, |* m: ?$ y* [* Z( g3 H. q3 U) K& w" N: x/ C
#include <linux/platform_device.h>. W) M4 {6 V3 ^3 K$ W

6 t" g3 i. v3 r
& k; g, v0 G$ K! t( q0 S; d" T0 B( G" a2 h7 w
#include <asm/mach-types.h>2 Y  L! b: G+ B: W+ j$ N

; s6 P5 l. g  E#include <asm/mach/arch.h>+ A# n7 I7 ~8 D4 E! l
7 k3 t8 ^) G+ M8 J0 G$ g+ N( ]
#include <mach/da8xx.h>2 h; Z$ @! ^# Q3 G4 w- ]

1 L9 j% [: T! O: i2 a9 {* E#include <mach/mux.h>
  Z7 I* Q0 m, w" r" s2 {+ l4 e
; L0 \. n/ Z3 x5 L1 K6 l
  u. S+ H; E* j) u
: G- I: H+ V! J* W; p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* m9 u+ k$ ^- g' M3 Z
3 `; }! c% u) b+ @7 R1 A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 V: K6 _* j, _. d0 s

$ F; ^5 o, y3 E' e7 z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 l6 l$ W3 |8 c! @$ b1 ?, d+ I  j/ F$ R- |/ S* h# a, b& i0 _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( P  W/ W  S# k# ~) U

$ t1 @  c0 D/ y* L" r  D  Q1 \#define DA850_USER_LED4 GPIO_TO_PIN(6,12); v( B8 o7 h5 x) d
- D) B% e/ y' Y2 j3 o  u: @
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)+ {0 B, ]) n5 ^8 O! y1 l+ f

. r7 x3 N7 o8 c( P3 P$ [
7 b: `  h% X" v' H
* X; i9 P) t  a) P9 n, l) P/* assign the tl som board LED-GPIOs*/# m* r, j  E& U$ Q

! u* R8 p) [2 w3 a9 s- [; |6 [static const short da850_evm_tl_user_led_pins[] = {
* L) W, Q& W; \) s% v. V0 g) e# T
5 M4 j  o$ K+ d$ a! r, C        /* These pins are definition at <mach/mux.h> file */
* J5 v( p1 e! d- u9 {9 \5 E# j. w1 J; y+ {4 i' P7 M$ [* E
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
) b+ t. F. C% t+ O
) {. T( a+ c3 n2 Z, y8 S& h6 D        -1
: [1 [3 N0 ]; v
0 w- S# T. P9 F2 G, T8 B( F: R};- M. z, r& V; a: v1 N2 q, L  B5 b
1 H% O# B+ B& _+ B  `0 @; K5 R
2 x/ w* Z" h4 d+ V1 {; R
2 P: l- s8 A% n0 f1 O. E+ c
static struct gpio_led da850_evm_tl_leds[] = {: p1 I( R0 W; D3 ^5 {
' u9 \9 i0 K* S( c% E, b, i
        {! d/ J4 W5 M7 c2 p
7 k8 i/ F% p- H& x" w9 [
                .active_low = 0,# p1 g; f1 @4 j' J4 \2 P% E
+ N2 M8 p+ L$ s. v
                .gpio = DA850_USER_LED0,1 V% {  E' ]6 x! ?& D  Y

# c, u. z: G; E5 b                .name = "user_led0",: S. t+ m# a* _; p+ e- j, V

- W8 t1 C9 B8 o1 E) _1 G' N                .default_trigger = "default-on",& c. g# X. ^/ w0 G8 l& k5 B
& f6 F2 J2 I9 A
        },% K/ V* I+ c/ Z
- |  G# h$ m) H  }
        {
1 @: k6 X1 `0 y5 [/ o' q) R) I0 n, D" U: p+ @1 f
                .active_low = 0,
. X( N- v" B- N  S0 c6 \$ ^/ v( V4 R0 y  z- i" y9 i7 \& ^8 ?* J
                .gpio = DA850_USER_LED1,
, x& t7 H% u5 E% i- R$ T3 u
: V; f" t% O, ~% P2 m* v- ]; C                .name = "user_led1",
  G' G: T; c. K1 s5 J& Z4 u6 d$ Y& I( m" O
                .default_trigger = "default-on",  I! y  ]- Z  Q6 [' }: A
; e7 y6 [9 |, ~. Y) U, I# v5 {0 K
        },1 O/ [# R  y" W2 |5 ^8 @$ a

' y+ c, k: f0 F* f% w7 h        {
: e! q, u# V( z+ k0 P: C$ j% X3 X/ A: i4 d8 w* U. w7 k  B
                .active_low = 0,
5 `5 z7 Z: K- D- }5 I) V
! V  u1 Z1 `3 t( Z. J0 |- ]                .gpio = DA850_USER_LED2,9 G8 w/ e+ F; y5 j, n
/ r  P. B$ r$ [7 \; g1 J
                .name = "user_led2",7 [9 W: w4 Z/ S" k2 C: c$ c
& ^& M2 V: L  R: z- Q
                .default_trigger = "default-on",9 Q) }8 L/ X) u. b6 ?/ G
1 V/ c) v9 ?: w
        },
9 p4 y* P2 v- q& m5 X9 D7 N5 I, [& w) r
        {
. q* X9 Q: t# j7 A1 q- S+ F! }: k4 v7 [
                .active_low = 0,
3 {- N& m* D$ O& O/ F1 K+ J5 J2 Z5 S5 G7 r
                .gpio = DA850_USER_LED3,
% f9 H2 U! T% d- ^" d
8 Z. s$ ?" N. B. i9 x; x                .name = "user_led3",
. N4 A7 Z. d0 F: l3 F0 Q# ~9 o. e6 ]
; c' [. E3 G0 A3 p3 F                .default_trigger = "default-on",% U. k0 z3 a; @: T' T7 U8 _+ V
) f( Q6 _' C) e) S$ N5 [
        },$ y& ?- y/ v9 n/ x' P# z' F. J0 v
6 h  ?9 R3 F7 @$ [
        {! L0 R4 v5 n1 Z/ J: r& ?2 A1 f

. ^2 |4 W+ u$ D% p& o3 \                .active_low = 0,
' c/ Y3 l/ m8 i9 ~7 D* D6 M2 g6 e! S/ l* x8 G; T
                .gpio = DA850_USER_LED4,
( l6 F1 H' ]5 i4 |7 a. V* s# M  G6 y6 Q- q+ z- N6 b7 `- |
                .name = "user_led4",: y0 V. ?0 Z! T; g3 y

4 K) [% j- f( S( Y5 \                .default_trigger = "default-on",
# d# ^- x7 r: T& Z8 y: d- C( K' y. T$ s0 K. y# h; T: Z
        },
: F. }7 U' f8 ^2 w3 U* y# |" w! K; B6 \  }: N1 d  V- J$ V
        {: a6 ]6 F, E  k5 F
' A" _- e+ J1 _; }' h6 F9 C
                .active_low = 0,
9 J% W/ ]" a* u# d8 M2 K
/ A* C8 z) a  X9 B* O+ |0 s                .gpio = DA850_USER_LED5,
; }% Y, Y8 c+ p- ~3 g4 W
$ B& f3 f( j% ^: |+ o6 q. C                .name = "user_led5",
* \3 a6 P' V/ g8 j9 e" L0 [0 ~6 L3 [1 u- x
                .default_trigger = "default-on",
2 e7 }+ ~) k) p9 h) ^
  ?  r! s( B- J% k: i        },
: |! y( {4 R3 `- }. T; Q7 f
/ d! D5 W+ e' Q+ G( a};% d  h; g2 S2 T9 a

3 W4 Z8 D  b# C' X# y1 s8 V3 a; N9 t4 r3 f3 ?0 d" W! M$ }

7 X, P5 y' E2 @2 S3 Y' P3 k% M" a0 zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 B9 n( q$ f3 E9 U  f3 Z% n! ~' N  C. d4 W+ }
        .leds = da850_evm_tl_leds,
$ {% y6 o5 x" R& [5 @9 C6 p1 A: Z- x9 i  Y) P$ X# W3 f# M
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  P2 h0 _* ~5 ]! ]6 U

/ L0 M% Z. ?+ n};
! V, B1 l' J8 }4 P4 Q* g- R: c& [. A" ?- R3 G1 @( \( k+ _
. {( @( i: C! X$ f$ R

$ C) s$ d/ f& y& ^static void led_dev_release(struct device *dev)6 S: I+ R' z' E: ^& u+ U- I
  z- L% e4 A+ r$ U  t* z
{8 \6 y' q9 ^) {1 |9 P

6 d0 d6 }' ~2 \};. y8 D" q* C+ Z. d) l# t! S
- k5 j; I/ p5 Q1 K; M2 Y
# F! k) n* c: _- ~
, L+ e' I$ @( A7 x1 v* q7 C* h
static struct platform_device da850_evm_tl_leds_device = {! ?. L0 d& M% _2 {, v# ?! c

% b2 w0 \5 k+ E        .name                = "leds-gpio",0 a2 v' s9 j; v- k0 Z
& ?: y9 l  \4 w" ?
        .id                = 1,2 }4 f2 b8 ^- H0 L

+ `; ~# U4 s2 }$ m. ]0 H        .dev = {+ s* B8 t& d. p9 S# h
+ O% v. L" e3 Q8 \1 N0 ~8 K0 P/ j: q
                .platform_data = &da850_evm_tl_leds_pdata,
' h' b- D+ J% b6 H. s- X5 f3 K/ |6 P: E2 d3 x
                .release = led_dev_release,' v+ R1 _8 i: Y
$ [$ _$ m8 O7 N1 i) W
        }
& Q% |( k% o& }8 Z( d0 Y2 F# D0 T0 H
};$ y+ T. x# S7 [6 v' \4 Z8 a
& I# _6 o0 w- A8 W( n
' _6 Z0 i! G7 Y8 Y+ L8 E

/ b1 X) Z! A" B3 M/ Lstatic int __init led_platform_init(void)- }/ q, x' i8 P' ~
" R0 B+ T. j# x' z$ K% j5 U9 r! w5 Y
{
3 \  j, K. Q% O. v5 [* ^8 {
; `2 V9 v: g, D* s        int ret;* K! ?& a3 u3 Q/ z( f% B

( A& {% ?/ T9 n* E2 v#if 0( O+ ], S: H0 y

# l4 F8 m( O7 O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* J" N$ _- y+ U4 I% u
" b: L+ }; B+ I7 N        if (ret)
8 X1 {3 F( q8 f4 `
4 ?( h1 a+ g% h$ O( K, k" E4 d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' U6 @2 Y  H$ o

9 Y6 P1 g, w% l! Y7 l                                "%d\n", ret);  U7 J( d  M$ [$ U' l3 b% `/ T

) I' _; ^- a1 k$ L( G* ^5 J#endif
5 R/ i! H- Q" \+ z7 @5 a# g% I9 q9 ~& {, y
        ret = platform_device_register(&da850_evm_tl_leds_device);* u' ^( f7 \3 v5 `4 O7 h

0 a: C9 a. J$ O( b        if (ret)
: e9 ^% w. X' E% ^. A) N, q
! t& _! x" v) u+ \3 A+ e; e: c                pr_warning("Could not register som GPIO expander LEDS");
- R: p$ l, x/ }  @! \
4 r0 h2 ]9 L4 ^' n; d# h, T        else( |$ V$ ?* b% o8 x  z4 a& J0 Y

: r& N% w' |' u  v                printk(KERN_INFO "LED register sucessful!\n");7 V) h& d. V1 z2 p) \- B6 X
$ O8 u' A$ T3 S0 z1 |1 p5 b

- T! Q/ c/ B5 S& f. @* U; {! e( m2 j6 `2 [. K
        return ret;
8 I" N+ ?, V0 \: M7 a! }/ I; o5 t
}2 \$ ~" c8 Y) _0 |" y" m; @9 f7 J
7 K1 c' `4 n, X/ k, R, q5 e
# Z! ]2 Z, i, s  `$ R/ {$ L
" z- b3 a0 _9 w- R3 i) o/ I
static void __exit led_platform_exit(void)
9 |  W/ O& P* I3 S; _$ o
0 K" W' ~7 @) h1 ?  F: @{1 g6 d7 L  S3 O3 o. |- V/ u

3 H) D" Y9 |) h% u$ a1 ~1 n( N" y        platform_device_unregister(&da850_evm_tl_leds_device);, A; o- P, h" G" O  [  e7 `! _

9 b0 f3 a4 u% D* y) O& ?) t7 s0 n
2 Y- Y  \0 Q: t( g  W" n! x
( u! Y$ P  s7 S& g8 f+ E0 X+ w7 Q, n, Q        printk(KERN_INFO "LED unregister!\n");
' H* g) n! I; u. l6 q/ a8 P
+ \# F9 i8 e6 a3 U- d6 L. O  Q. h& a}; J' k2 B3 N- c
' M9 l% h/ N  @& a( [
. g  T* @8 K8 \+ K& p4 E7 r9 n

" [" ]8 d# U2 q. O0 m# pmodule_init(led_platform_init);- C. W% v: C! U" b+ a

. e5 k+ c1 L( bmodule_exit(led_platform_exit);
$ B# V) K/ D% T4 x! c# D- {" j/ N
9 P  |$ {3 l+ [) m7 J$ |
: t' @4 s0 x+ a* [* m$ B* l
' {3 D% B0 [) N3 ~5 H; o1 IMODULE_DESCRIPTION("Led platform driver");
1 P( f  A% f" n
! e4 T! T8 ?( F( R( {9 u, E) OMODULE_AUTHOR("Tronlong");
1 r' e9 O0 ?& u  I7 g" m; U- p, `) j# X  X
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-30 18:16 , Processed in 0.047969 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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