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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 / J# k8 d. V2 F. i5 I. H5 r6 V' g* E
* ~3 ]; G. N. \) K0 P8 _2 P& x
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的; m; p3 L  \0 M

! _0 W& {. V. a2 A- t之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
, r, `/ u) j) y6 @& K$ n+ M3 o6 Z8 D& N

本帖子中包含更多资源

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

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

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

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

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
0 b& D3 p( M" k+ f9 L+ d2 U/ J& @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:32. e% j3 ^" r( Y7 U
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! [( `5 N* v8 S4 Q/ o
...

1 {  B  s$ |7 }好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。2 V) M7 F2 R: {6 @) }1 x

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
1 R: s( w( q: u) Mlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

0 t$ b9 F4 f- {& P5 }2 F0 O, f8 h我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
# {5 M! J" Z9 v; M3 f3 g+ P4 d0 j: X#include <linux/module.h>. i0 r% G2 s) q
% b: O( s; ]1 a' {$ ~
#include <linux/kernel.h>) L5 J6 \, \) E6 L0 M" L

1 L" _( w) v0 ^, A7 g$ t& l#include <linux/types.h>7 q1 u' W: a. n& ~& J
" A3 K9 o0 E. O0 K! J1 y- [
#include <linux/gpio.h>
3 f0 `( L' t0 I& \: Z4 ]. J- Z) v
1 Z7 J! l/ [- |( C#include <linux/leds.h>
  J: _$ {* c; n. @; }( [8 o4 H4 l0 [! o& s: y$ j
#include <linux/platform_device.h>
' S# ?. l7 A5 z) j; f1 e0 O
2 r$ K# y( Y8 ~% z. R1 Z' |5 i7 T0 ]% s* ], |, B

5 T  R: ~0 g4 C; n#include <asm/mach-types.h>
& H/ E0 l" d3 `) `4 P
( S( A; H# Q; b* @#include <asm/mach/arch.h>
' c) \" D+ f6 A) H  s# {0 |+ ?! b$ k- S
#include <mach/da8xx.h>
# ~" g- Z3 E& O. V; t8 `
$ M/ e9 c. W2 b: F! n#include <mach/mux.h>
# ^9 n1 T% q5 [1 ^* P) j7 d$ ^9 t
" |) e4 v' U6 @2 y. |9 U$ s0 \$ c8 z: e0 n* Z9 w& E& }
# T) \* n. c9 O3 ~' A7 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 e* W% p$ x, o; T7 P, H( [
6 H. B' N/ `8 H, D" g) k0 f# o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* |/ {$ ?, P1 F
, ]# V- Z/ r% m9 X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" L5 H2 G0 ]& X! g! J& X8 q) f9 w. I: I$ \+ f9 m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), U, Y5 e; F1 |" k" E7 O
/ m# A( q9 a5 c. t4 T5 _' z
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
) y" ]0 \+ a. c' L$ y5 H4 G
8 _' s# v: N# I; A8 h6 y' M#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
8 Y5 d5 F7 }0 O( a- N' n" N+ R; r0 a; O' m. B; n$ _" S6 h

( {: @8 \+ k/ |" Q
' W" u" G. B& C* W) w- F- z, i/* assign the tl som board LED-GPIOs*/* ?. \- k) b6 K. W

8 k0 L  H) k, Z& S3 S3 i8 }/ f* q$ Rstatic const short da850_evm_tl_user_led_pins[] = {
8 ]. i( x, o* p3 }2 S. E4 B4 F3 G1 }- u$ e5 ?
        /* These pins are definition at <mach/mux.h> file */. S" Y. G! X+ [

5 V" D/ K1 F  z+ W, p- Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
: N) L3 X5 J; D
# Y5 v. F+ x4 o        -1( o; n9 b0 l# v; @/ O- j! P

9 v4 ~( d6 \! H: O& M};  S. P! i5 T: u% D+ v. m0 W
  p7 L" }3 d) G

* l# ^& p/ L" _6 L/ h! f1 h, g- W8 A4 X
static struct gpio_led da850_evm_tl_leds[] = {7 F7 A$ J7 F4 G4 k* E6 R! T

6 X2 ]$ ?9 m' ]6 Z        {
# z3 e& b+ ~. n: b8 }1 Y+ g( w
' r/ w  g2 D  }2 e                .active_low = 0,
6 C$ A! ~  h. u, L5 Y9 }4 I* J4 M* M9 R0 x
                .gpio = DA850_USER_LED0,
3 R/ `% g& ?; r* {" X+ w4 i8 S% D# E3 T( b3 m, |. s7 U# b
                .name = "user_led0",
7 `' x- Q  I. n
5 R) K0 K2 Z2 N$ m. T4 D                .default_trigger = "default-on",1 ]+ I+ n. A4 C

7 Z6 U' j3 m8 c. k        },9 A+ I( H4 A* W0 R- j& n

* U5 B  P8 v9 g: X        {! Q; D1 |# o2 f& ~+ Y! G8 L
5 w* n' i8 D) L& i$ C6 W
                .active_low = 0,7 g5 x1 c' B7 o

* b+ Z+ p4 e7 p: k% [) D                .gpio = DA850_USER_LED1,: G" W0 [4 S" G

4 s: R- C2 d8 L                .name = "user_led1",$ |& W% |/ H9 [5 S. u9 R) |! p
$ Z5 u( G6 n# y" k/ J5 V
                .default_trigger = "default-on",
# q. f- M1 q& M' X' a' t7 c) F2 v0 }& Q
        },
4 D* l8 k. Y  o4 J. D3 b) t
- H9 g3 Q& |& G0 ^" I6 m$ S6 T- t        {
0 a" s  j) k9 Q. P$ X! G, F% S7 P. S$ r7 y% v6 @- M+ m
                .active_low = 0,! J" }' z+ c9 p# Z9 R) F) R# H
+ f, f% k, X' J' @
                .gpio = DA850_USER_LED2,7 i4 o3 _1 d5 w  C

7 s7 V0 r! P% j# G1 l: q1 [+ m6 p                .name = "user_led2",
. F; _- g! H. |
% ~% \$ j& I: h6 A) q  b3 ^                .default_trigger = "default-on",
" B( k1 @7 b/ K2 l
. s) V" @6 Q4 i% w% t; v6 L        },
$ [5 u, K0 _3 ^+ j! p) i0 U& q* Z" g- G# y& B
        {# ^# }) C" _9 l: Z  L

  {1 s+ {% s  X% d                .active_low = 0," \5 e$ L+ o' W; ~! h9 w9 T

5 C$ i: i) U0 Q( i                .gpio = DA850_USER_LED3,
4 ]1 V# K9 n. U! _; {, X' W7 w' {+ |4 A- k1 S8 |! {2 s. W
                .name = "user_led3",
# B0 G' }) f7 H. S+ I- s" c" N4 q6 T$ {# G9 d9 x
                .default_trigger = "default-on",
7 w- v- T! t: h' N7 h& X
% A5 y$ c) E) {+ C7 m6 f        },
. h, P4 X# I# j4 r2 b) ?& e* q$ I  [9 y$ [
        {
8 J; ]( N2 C8 r/ E! K! H3 L1 [( [8 S% `$ T2 q( W2 d
                .active_low = 0,
. _3 O0 `0 p- V& ~9 A) Y3 r5 H4 L5 I# o. r$ @+ ~7 a
                .gpio = DA850_USER_LED4,
- C9 I: v0 }6 [0 J, A0 Y
3 [; S6 `6 {0 o: W0 [" J                .name = "user_led4",
. }" ^, o: n6 d( U+ g9 e( u2 }
, e0 x  w* d  T+ J) _                .default_trigger = "default-on",
* c  G; _2 r; c' O( O% H( l3 M& p( l# l0 J
        },3 k0 t% b+ n1 }7 ^! Q5 [9 x
$ r' I9 F6 A& d) n6 [- L. u0 [) n
        {7 h* E$ C% M& H& R5 I* P
5 B" I# N( K; o& X! y7 [, ~
                .active_low = 0,& T" u: [6 u' R8 w7 h+ k

8 Z0 U2 ~3 y9 `% P: v' ?1 M4 b                .gpio = DA850_USER_LED5,
0 F, G4 ~/ x0 B4 ]( y' D
0 Z; P) A; I% u% b7 Q8 O                .name = "user_led5",
9 L/ m7 Y' z1 r3 u; y
# t+ T3 q6 g; j% D3 [1 W                .default_trigger = "default-on",
  t! R8 K4 u4 i: c3 S6 V% J) P2 ^0 `$ w' @! {  O. V& f# P) }
        },
+ W9 J4 i" e9 n4 m8 y7 t
+ m4 k3 Y9 k; d" ^, W/ H};
' V# y: s/ G3 j  Z$ \; S1 Z6 s
, x2 A9 ^! e1 F7 i
* Z2 ~1 b6 w. g+ r1 }( a* |
$ N0 M1 F2 k7 H! P. ], qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% i- B* s/ l4 g
8 E: e# s& x8 a! Q3 ?        .leds = da850_evm_tl_leds,( j$ x0 Y% P- l6 r! U5 j5 u
* p! P- p: v1 y( H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! g9 g/ V& Y" N2 {, ?  M
; L9 {3 n$ F/ d% U};
4 D6 ~  L. c; f- L, k; t
/ G! g9 s% }4 g2 k# C& K( a0 }  r# F  I. n
9 }3 Z2 \& n2 d) F6 c
static void led_dev_release(struct device *dev)
  V4 Q& q& B; [& b2 y9 V1 ~: G7 c# T' G. T
{7 `; k1 Z, l+ K: ^

% R/ f; Z+ T6 Z3 U/ A};4 E$ y2 ~! U; E: r, o

& o2 D- t; ?# X  v* t
2 m+ a" c6 E- T& r* @
* x$ n8 Y" z. H4 q% Ostatic struct platform_device da850_evm_tl_leds_device = {
  T* g: w$ P5 x# f; J7 i" j) k
% p; S# y: X! D* a        .name                = "leds-gpio",
  h6 u  g1 R& A7 t8 ~( E. q" q, K8 a6 i$ A
        .id                = 1,- }, M5 K, N& t# A2 L; c& H& s, i4 W
( s2 T5 }: v& T" r
        .dev = {
6 q  b1 j  q2 {0 }7 y8 B3 |4 O) |$ u" o' d
                .platform_data = &da850_evm_tl_leds_pdata,. k( y, n7 K' V! T# {1 j5 z3 ^
3 I2 l6 y- g  L& G
                .release = led_dev_release,2 Q7 d' Y9 v  C: t
( M& v( S0 S, @. D1 i' E
        }0 _9 e+ j2 y; c4 K5 R, \& C# c2 s

* g- ^9 r  S- D};- m  D2 Z' w" U
+ T: g  x; d: H* }/ H

- z: B/ p' W7 K: G# s9 l$ J' I$ H& l6 o
static int __init led_platform_init(void)
9 U' t) U+ u9 k1 j: N/ e/ T
# q) O+ u0 q9 |% |0 |* Y7 X6 m( k{
; z" x8 i: j7 o( G+ W$ k* C! C- B) C' n+ v7 b
        int ret;  B9 v# w. A9 D( F9 M
" ^2 Y  z( O& S- F  ]
#if 0
8 _/ r  Y, n' k7 I' Y4 E9 ?" A3 M0 {9 J  U- H- I4 y; A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 o' L/ X) b  x: S4 a, K+ r

4 ?/ h1 e# \  g6 g% X6 O        if (ret)$ H" b$ I9 X8 C' Q$ k1 K/ O/ f1 Y

+ T- J5 ^7 s% U: l& N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* u* d6 ^+ h/ o* l" P) m6 R
" V# P- E% i/ y" [3 i4 W5 L
                                "%d\n", ret);& t5 B3 y! h! P- ]6 Y1 C

8 |- _* b* i( e# X/ [#endif7 ^( D( [& ^  e. Z8 t+ J2 s3 O

: s7 H4 h+ |' P0 x        ret = platform_device_register(&da850_evm_tl_leds_device);! ]. z# f3 z  k/ H( A

+ Q3 V! a* ?: W% j2 R2 K" B        if (ret)( h" {% `$ T! B9 ]" z  Y6 U$ d# T6 B
1 n0 O) H" O- L9 Q& d, _
                pr_warning("Could not register som GPIO expander LEDS");
0 o( O( C0 }2 E0 y- X9 p
( v; p: w2 y3 m+ V0 Y        else1 w) V  b; c2 v! Z  }* u) h
! H& W. S) y  d! g+ S" q
                printk(KERN_INFO "LED register sucessful!\n");
: e, b! G' Q7 v3 |9 i2 K8 n! e; L2 B( q/ A
" m6 P8 U6 g. I4 _' ^$ {/ r3 s- D

8 x5 Z9 D  A$ `$ S. |        return ret;
$ b' C1 F  U. h9 X5 U( b
7 i- I8 {, f! @) i1 r; V}
& A, v5 _; {. n& d: s- q( N
+ Y/ T3 V) x; j1 j2 {5 k- T7 ^$ b2 ?$ h' }( X0 t* N% I/ _

8 ]* F0 u1 E# {static void __exit led_platform_exit(void)
. ~: ]1 Q3 \* M" k" @4 K) s& B; O/ e3 m
{
5 {* W2 ]1 q. S! _0 y8 X- A
/ e( I1 e6 y# M2 `        platform_device_unregister(&da850_evm_tl_leds_device);
) s  ?; n0 P, \  l$ M( T9 m+ b, B  r  c8 t6 S
7 M9 N2 k: Y5 B

' z6 T7 |' ~8 Y& o" n        printk(KERN_INFO "LED unregister!\n");! Z2 i: Y; O, U4 u/ B

, a' C, I* X* Y2 V) F" z- P+ z}0 V, W3 B! X! Q$ H9 ^# E; U" E: `
7 b: b5 Z/ f, ~. F, Y' b- V: ^
! C; o8 G5 a4 W8 G! x  ~: n
% p& p* f) h3 }/ U
module_init(led_platform_init);
% n% N& P- z1 b4 X9 Y5 h  `6 c* i
4 M- O. d6 f5 h0 k" ^. gmodule_exit(led_platform_exit);+ S6 d& x: M% C  C
' T) Q6 Z% d3 ?9 o0 c3 m0 F

6 }6 _, g4 j. }4 [7 y& E& \. f# ~8 t; f1 v/ C  X2 p
MODULE_DESCRIPTION("Led platform driver");. S  `/ r2 J7 s1 K
( x0 O+ K% l) ?* o
MODULE_AUTHOR("Tronlong");& r7 q- I- I( _) e% U
0 l+ r# N, Q. k# ]8 u
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 19:17 , Processed in 0.043020 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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