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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
  Y6 j: n; P8 N. S
. V# f- V# d; f. K请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
& K. ^$ L+ y6 P. X6 D2 E7 D8 I% G
" ]4 ?# L  D3 B; A" S* s, T" _之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?7 c4 J+ M# l1 r1 v! r! x- @
) P  H+ y4 Z* X# V

本帖子中包含更多资源

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

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

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
( A0 D6 I. ^/ w5 Y- Z) C1 dlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

/ Y0 C0 h9 p# e0 y; A我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
5 ]* t9 }/ n7 ~1 Z4 }; X% S#include <linux/module.h>0 }# ?9 M5 K+ \$ O! C
0 }( E; f5 v$ m. A
#include <linux/kernel.h>
. @( \6 q7 c4 L6 C6 s: I" K# M+ O% B
#include <linux/types.h>
7 W2 g# o  E: ?1 t, v3 E" o. t4 a' G7 R9 B
#include <linux/gpio.h>
+ ~9 A0 m1 V, y4 x# s
2 K; a; W# ~- `9 {& ]5 G3 T, U& P#include <linux/leds.h>
$ y3 I3 \+ k% b6 x) M9 z' v: O: P0 h( E
#include <linux/platform_device.h>' l* U0 L: }( ?3 W
" B9 r/ H' z( Z  `$ X
1 |: H& I$ J6 w# D8 ^

% Z, Z# Q: }9 o- c; i5 B$ u7 w#include <asm/mach-types.h>& ~0 j$ s, R/ t3 H' A! q( ?

+ j+ }: F" I: ^& v% [5 r7 P4 O#include <asm/mach/arch.h>: b+ M% K* o6 d9 L7 H. Q
- |, t8 R' q; J' a* _0 n# b, u
#include <mach/da8xx.h>
% n; g" N" W, o! q3 e: h' N  Z+ `7 o1 Y* w0 h, p
#include <mach/mux.h>
7 G+ j% W' p+ [1 p+ r7 X
( {4 Z5 Z! K1 y
; W; {7 O& {) p8 w" a- {! w, `6 n! r% f0 V! z$ g/ j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* \: w6 v0 I) {" F( W1 q0 [7 d

2 E! p3 }4 p1 |+ `2 L2 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 k, _+ k8 w. z
7 r7 R8 M4 y, X- W) s- E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' s- W. J0 a. |; ?9 ]
3 z" e/ S! m" E0 t% N7 m+ y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 j2 {. P& q3 j' a9 F
* A( c$ i2 d5 m8 m1 w0 f1 @
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)% r6 Z$ W9 J& E# }- w$ C) }6 y# b

! A  F1 G1 o8 x* m  q# u% ]( {#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
, j# G1 C5 ~7 w" n6 z, P7 n
0 G+ L4 g; S4 J7 r6 k- Z1 y; r4 g& e% L( f
9 v- h4 Q3 v' l
/* assign the tl som board LED-GPIOs*/
- p3 g& x: |: ~9 x: @
' v3 q* y% l" I+ Istatic const short da850_evm_tl_user_led_pins[] = {
* h4 t8 H! b0 r/ k* d- m4 s7 D! i$ H& L' M, l9 D+ |0 _
        /* These pins are definition at <mach/mux.h> file */4 F+ c6 i4 M) g. Z  E: o
5 S2 u6 R8 Z: i7 i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,, y+ r# d/ |9 e7 z+ Y  \

: k6 I6 q$ {" L) z, t* K0 U/ N        -12 \  _" `! ^% R* e& Y9 R
0 W, v3 I+ e- y- [* p, ]% M
};* g9 c1 |: V& ]4 \* @) w4 Y

1 l( n; r, T" D( r4 W2 T. S' I/ D  f2 @* n  o
2 _' t; s' n$ S5 v% E; E$ {2 w. Q
static struct gpio_led da850_evm_tl_leds[] = {
5 H. B* s! ]% |$ K3 z/ h
: d' T3 H8 a/ o$ B$ R6 T, F6 m) \        {' I' ]  R; \) i' d8 V

7 v& I& x& ]$ o# F  R  W* i                .active_low = 0,: R0 ?1 ~# x  w  O3 ?) D- }

2 J2 S  R8 V; M/ n                .gpio = DA850_USER_LED0,
$ b4 i) g9 Y7 z+ p$ u5 T- b$ Z" S+ l: ?5 x  ]
                .name = "user_led0",, k+ p' e1 Z+ `$ q2 c: {# W

0 G3 Z, D; j% }                .default_trigger = "default-on",
3 S3 w5 ]7 {8 H2 x, Q( p2 T. o2 r+ L. ^4 C$ K! t
        },
. }- V3 |, _3 H& D3 c& C
4 O. G3 P# r; H& ^# o        {: T! s. z: A- n+ K# v' ?, X9 w6 i8 y

' z9 N+ c3 f  S                .active_low = 0,6 H# [. B. U0 \' g
& u1 i, Y1 @- X' I/ i# a0 v8 _! M
                .gpio = DA850_USER_LED1,9 v5 t/ _) [+ E, _
+ [; T2 f1 Y, p% F$ d5 c- i
                .name = "user_led1",
- ]9 g5 d$ ~3 v& o4 Y2 g- D. [, b6 _$ a
                .default_trigger = "default-on",
- T! n6 e! |4 g5 O3 O% B$ K5 V4 O2 I6 u5 `9 V' C3 M: h; k
        },
+ z9 Z" I! M: T' C( [$ y  n: [2 Q+ U( R0 R/ ^" O( M- z2 w* ?2 d
        {7 y' t8 c+ j0 ]6 |6 A& H
6 V8 B" x/ z, y3 j+ C
                .active_low = 0,
' x& T# R/ r' S# Y# n0 q5 @* _4 b$ A3 N( h  D5 a4 z
                .gpio = DA850_USER_LED2,# B8 ^/ q* j: I8 d7 [
9 V! \; L' f7 r: \% }
                .name = "user_led2",
) M$ G2 X5 N( p+ p; H# J5 P
2 A; u. q( `9 V4 c# h+ [                .default_trigger = "default-on",
+ A: p% H" [! F4 Q' f. V+ W6 T+ y* N' X! J3 k- l- ?
        },
* T$ t# G2 u7 `% ~; z; t
7 x' I8 \4 t! C( d# p5 |0 ]8 @        {1 Z0 c' l/ T: @9 w

- `# @! x9 P6 y( n' O                .active_low = 0,
3 x& G8 R1 f( y  K' z  ~( `5 z1 Z; ^
) d4 h7 w" E8 ?. R, [- H                .gpio = DA850_USER_LED3,+ H- R2 T) n$ ^0 J+ ~- B

5 v: p' q8 T1 o' T; M* O                .name = "user_led3",4 k; T, Z4 T4 A3 K$ p% r, P
4 p0 h8 B6 R% C
                .default_trigger = "default-on",: @/ j1 Y, n# C& N% b

8 p. D9 S) v% }0 ~' \; X        },+ j/ Q: y1 q7 T# D9 }

1 o3 ~% T$ P  i2 D        {, e# T& j; B, D+ [- }; J6 l( _
3 S9 O7 r- |' X2 J" q6 Y
                .active_low = 0,
) Y3 W, [- C0 v, A' Z3 ~+ g4 ~: ^  I: |1 l! e. ?) }( }& |* x/ L
                .gpio = DA850_USER_LED4,
' C; ?& l" L  j6 r6 l! O# p
& L, {% q! v0 c$ Z! P3 x5 k1 m3 s9 u                .name = "user_led4",
0 m5 x( l) R( w! F; B* @+ C. |) C$ a2 f! X0 R# z
                .default_trigger = "default-on",
3 l* ]) L8 z" q3 ~/ q! m+ k! |5 Z" A
        },
: M# u" s2 \# R3 T+ z; L& B. T9 c' r' C3 L- h3 G9 E' A/ U
        {, R5 R& T/ i6 W8 ~& T
& [& Y1 {& ?) Y! Y
                .active_low = 0,
* a/ V$ w' O) [% l; x  A5 K
  e8 o! v, @, o5 r# ]                .gpio = DA850_USER_LED5,
  Z+ y  k3 T; v2 d1 G( `8 s$ F& `) q
                .name = "user_led5",
7 {+ b, C# c# r! f4 ~6 Y) D
5 m/ F7 W( L& c                .default_trigger = "default-on",
$ R" h) ~2 @% x/ Q' X4 m$ x9 x; n! O" c; ^8 w: G2 ^% y
        },# D2 S. y, p( _4 H/ O

2 z% w3 }& _" E+ ?};0 d$ D  S( w/ I$ b0 I' K2 Z

  n9 Q4 ]( T2 }! k1 ?: e- o. \' r# o+ x5 _/ q  `7 Z% t9 n
/ H  |) D4 ^  q' b/ g) k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; }5 T! U+ f: l, `9 A2 d  v3 f1 V9 m

* s% s' J( F3 j' M0 G) \        .leds = da850_evm_tl_leds,
  T7 {& K* D8 c% J  d
) U5 f1 z3 W  O" @4 d; ^$ H$ f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 D( @% A1 y, J" G: b+ z
! }) R0 C# A" o* F0 _, c4 p' |0 U};6 q: x0 O8 N+ Y
2 W7 g( ]8 r5 M  v) ^/ x# L* n1 n3 \
* L/ x/ f4 Y5 a, a" r

( d- A9 D2 X1 l" D5 m# Cstatic void led_dev_release(struct device *dev)5 z+ |0 ^, t$ K/ q; L* Z
  ^7 R/ ~$ m2 d) }% x- d
{0 v" {! x$ V- n
( E# \, [2 N- Y6 p3 M& ?% M/ y
};, C* ~& t6 [0 e) X

. a" @" E* m8 m! k/ M
! O3 d) @1 q; |( P& ?6 n6 c9 F* N; Y. T) {5 |( V! C  U1 A
static struct platform_device da850_evm_tl_leds_device = {  s: c- m0 P/ p5 s. w3 r! x

/ H4 @- G/ X; I6 L        .name                = "leds-gpio",7 m1 L& w" L; H8 `

. @4 A& Q$ W' [. w        .id                = 1,3 d! T, H$ E6 l/ O2 {
, h* D( P) Y- r+ b9 o0 X" w9 h
        .dev = {
9 @& ~8 z, s+ M& j; ?0 W3 ?( Z0 B& H/ H
                .platform_data = &da850_evm_tl_leds_pdata,* k! X/ x8 v1 f# m! l8 i/ f

. D- p( I$ p, j7 Y7 [                .release = led_dev_release,
: E3 [' s. o2 ]" y/ v  n( N& ?* I# k5 `- X
        }
' w& D# K" X$ \) C% K7 C0 @# A5 A7 q2 _
};
+ b) \$ \, O8 f+ p
3 d# M# @, y+ k
# s" E, R7 c& X2 ~( B- t8 L9 V  A* n8 X# Y/ y
static int __init led_platform_init(void)
$ o8 C9 r. {( D8 s3 q
% Q7 G3 p% U* Q- o8 e1 X9 F{
7 a8 ~' `% Y5 b$ g
9 i: b3 B3 |3 W- |7 a! j2 e) W: M        int ret;9 Q6 S) P3 y5 J% P6 W4 v& G

* s7 _) x+ }/ _$ j/ A. V#if 0% B0 f/ d! ]/ e6 w/ T$ m
  \8 m+ j3 V/ o
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, l  F4 M! m3 ]! {( I* m

' |6 X3 }6 V5 C% S; v        if (ret)
$ m. _; s& h( t
( r! }; J2 e' J9 ]8 M- _5 v$ m/ R! D                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 E5 T7 v' y' Y

% j3 G) w8 N$ y) p! J- O                                "%d\n", ret);; R7 x# Z1 B- K& X5 R6 A% e/ d

; R9 f. \8 e4 o! `) ]#endif! p5 C  c; c  f
5 G* h) _8 R5 g; J. ?
        ret = platform_device_register(&da850_evm_tl_leds_device);
* g9 o0 I: B0 r* f- E
9 W- N6 }9 ?* z        if (ret)6 e. h9 X/ \& L/ X# Q. Z
0 t) c$ Z8 {8 F  O% T7 }: H; L
                pr_warning("Could not register som GPIO expander LEDS");
! k- q' ^$ w! B' Y4 c1 J' V
) \3 |; W: R3 Y  X/ K1 Z! O" b        else$ d4 z7 l- Y2 A7 F: G( c! n

1 {- J$ x& F3 L+ x: H+ D                printk(KERN_INFO "LED register sucessful!\n");" R. E  t& g- u* m$ d
  I6 `% w: d! N5 @

7 @0 ?, p+ A, e7 W& x
2 l9 p' z. I. G' ?9 ^% v' ~        return ret;
" @" k( z2 _) \0 M% }7 F8 t$ [
9 q4 T7 f; B5 ]& K' R}+ Y! H  B0 K0 c- q9 Q2 g
0 s: d8 `: g. k3 E0 t

; n) `7 k1 x( N/ u, d. t. ]4 b: f, y3 l; {. d3 S
static void __exit led_platform_exit(void)
3 ~! |" I& s7 Z% e# \5 X+ P5 \
4 c0 U4 F+ X& W, g- w1 z8 ~{
  X8 j) u' z6 s: w+ H4 f5 |/ e  d* b) x/ s' P8 K
        platform_device_unregister(&da850_evm_tl_leds_device);
: V' M% T/ J/ F& d. z2 k$ H' r
2 N& l* h2 u0 j4 g3 W6 z( \" Q/ E
  k: ~+ g+ N3 T' {1 W9 q
        printk(KERN_INFO "LED unregister!\n");  |6 I+ K4 ]+ {& q* w" `* p
4 l$ h5 m' P6 M
}9 S* e/ @/ r6 _, c2 D% g+ j. h

# _- `( u+ q$ Q' @2 f8 {7 A( X' b2 h) j. s

: i) p0 I" n0 i& L5 lmodule_init(led_platform_init);4 v1 ~" w: Z, \* g( o& J; {, A

$ I+ H( j( i; z% ?0 Bmodule_exit(led_platform_exit);( X6 j; Y) t4 D( p4 W
4 m, _2 |2 O3 e: Y/ z

/ k' X0 L, \4 j' V2 G! N) t( H) }  `2 _! y+ \( n
MODULE_DESCRIPTION("Led platform driver");
0 y1 n  E: I1 R& u* X% q0 g" p8 E' L0 y
MODULE_AUTHOR("Tronlong");
, X+ I5 }/ U1 B+ w! I
- ^* P+ h0 e, Y/ WMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! T* }& q) R4 w' T$ {. [

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32" M! g) U4 B. F8 H6 b4 w7 c
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。3 E2 _9 I% ^! U% Z) T
...
9 N  n& Y) a2 j
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
' i6 F/ j% k; |, ~' L& ~http://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, 2024-5-3 19:56 , Processed in 0.046935 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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