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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 0 h. u6 b' k+ M, ^& F* P4 O

( }$ P. O+ D! w( H2 \2 Y请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的, Z  {, \. ^! T3 j6 C) G, @3 ~
( E5 B: ~2 {# e- q7 c* H
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
% s* M* W) L$ j* b! G, B5 _" v# g% z7 d# |

本帖子中包含更多资源

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

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
! R3 }; `0 y& N/ \. \" v5 ^1 Flinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

8 ^# z; P( L6 k$ H我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
# _( g% c( I, T0 I#include <linux/module.h>
+ i. F4 p( R8 D' r$ T+ t- y' e1 [
/ C" ]2 m& c- u: Z  s1 Q% s9 j#include <linux/kernel.h>
' g* m0 p% f  V* `; x3 a: b* l0 E( {3 ~: D" r: o0 V1 a
#include <linux/types.h>
6 k$ W. s% F3 t" l; q0 I/ \; o- k, c! V$ A9 {/ \# s3 K
#include <linux/gpio.h>
3 X4 j7 _, }" h; P% H- m/ @* y7 W) C$ h0 ~6 a! i
#include <linux/leds.h>
/ k  D$ I# d: d0 u1 D0 N/ p) H9 ?" O! c1 V# \) u3 R# _4 `
#include <linux/platform_device.h>
" a7 a7 n6 d9 z& q# o4 j3 {+ q) S$ c& A$ Y4 f; U2 s
4 g8 P& j- B! I1 p8 k- c3 u
' I0 t  c  C5 I, s
#include <asm/mach-types.h>
1 k' O- w" o" a3 P; _
+ s2 _  L9 D; B, w& N" B#include <asm/mach/arch.h>+ j1 m1 ?6 \4 W6 G+ o
0 h$ y# s. N: l4 `4 Z9 e: y
#include <mach/da8xx.h>/ N4 H0 d5 [+ F: g: _$ s( m

; Q8 T( J& H. c% t' L2 v. c/ N#include <mach/mux.h>2 }( v2 t9 i* K% H  l

# |3 [( [, J1 G0 ^1 m$ K& E
3 Y: n  r/ z0 B9 s) \. a0 @& `
! I( i1 e' H7 u  h$ S, Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& @& R7 O2 P2 t

$ `" H1 N; g2 p' g4 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- C7 r: R4 Z4 l  \3 a& s( {, k
7 _0 e4 r, J7 q3 P: o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  i& U' c' J! K0 g
9 j4 T, S# [4 z; i: V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 Q) X+ [* F) n* B

# x6 M3 G. B. M#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
0 M. ~) r8 ]1 D$ d  g5 g
4 Z$ I. D: _" ~' O( S#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
4 b! q) D  g, C$ J
. j& t* m$ E! }6 V. @
0 V2 _- ?. Z/ j4 K% T8 \; V6 H& @. z
/* assign the tl som board LED-GPIOs*/
. h( [/ v/ }8 R* u" i
: L, w, y2 g1 B' u% |. Ustatic const short da850_evm_tl_user_led_pins[] = {8 D; u  y6 f3 J* Q4 Q4 L7 r
8 X# T2 D4 B) T. t' O: C- o; G
        /* These pins are definition at <mach/mux.h> file */" i  n* Z% J$ c6 k0 G) h8 O
. Z3 A4 p' v) y7 U! `6 G5 s0 }- L1 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
* ?4 r# ?7 o( y9 c% H5 ?& P1 a' M0 }- [$ o, z
        -1' Q1 I8 g6 Q6 P* T! \5 P
1 A, q; q- u4 C1 P
};* S$ O6 s  V  {4 x' N

% O8 j9 E0 I9 ^5 \1 _4 e3 z0 ~, S% D: j2 k9 \' M

) J$ B7 ~7 |. o; J3 B  I4 i) rstatic struct gpio_led da850_evm_tl_leds[] = {
* [1 O8 s' H! |4 m0 k: T
& n8 Z9 b1 N9 Y3 @$ J) f& M        {: Q( `  O: n/ i! y9 }+ b
/ S! B6 C( k& G0 P2 I2 Q
                .active_low = 0,5 B% f" P2 o" s1 X( N" L6 U- U# f
/ C( k9 r7 }$ H3 R
                .gpio = DA850_USER_LED0,
+ ~0 A/ B. p$ N& m+ z0 Y; M$ y2 K* M# x; M
                .name = "user_led0",
# l5 h9 J( y3 U
) A( U  v5 K0 Q( Z8 i, X; Y2 X& x                .default_trigger = "default-on",
4 O/ W3 @5 `( Q4 p& I
0 X: B! e8 @9 a1 L" w        },
# P. W+ n) E+ Y% b# U  u8 A5 s
, o& D1 q' o# s- d        {
( t* _  S# U- @" R& w: G* K6 H7 m) X/ R8 ^( r
                .active_low = 0,
& O/ k4 {0 h6 }% j( D  v& r- I
( R( K# n& D9 X7 a                .gpio = DA850_USER_LED1,
# E+ s3 s. a' ?0 g+ J& p' C  g, u! T4 s
                .name = "user_led1",
, j8 h# d' ]5 R- \; a5 M8 N. p
9 m3 t$ }& ?1 W( h2 @0 `                .default_trigger = "default-on",
7 @9 V( ]/ c# |2 D
  L- S9 M" L9 u# t! L( P        },8 W' ~; F' [) z& Z/ t

: {8 r& g+ j) [( h' V- q7 v        {
9 ?, }8 O. P) c1 l6 a3 j
5 M+ A) p- o, r0 s  e( B$ |                .active_low = 0,
" _* F; X% `1 O8 Z3 d: i# X
7 L: J) P9 N* C8 t                .gpio = DA850_USER_LED2,
, l7 D) D. L. u% s. q( B. o& r( `( `9 m/ T3 n
                .name = "user_led2",
8 y: h- j: M7 H1 m# P$ ~3 @. ]. j7 ~* e' `* S7 M
                .default_trigger = "default-on",, e. r( f, d) }" g( X# k. P
! _8 I$ |, l6 @* m
        },: Q) _5 c" z2 h2 @3 C
. D/ B! V" W( }# s
        {
/ h' }- R0 h1 q' p8 V9 s+ f: N# S' b, @/ x
                .active_low = 0,
, A1 [% k+ w8 [8 e8 s- X! X3 s) P! _) m8 s; @9 ^4 l
                .gpio = DA850_USER_LED3,
3 W$ Y9 X0 `( i: a- r
' w6 s8 b. i8 W6 s& V                .name = "user_led3",5 G1 v$ Q) r$ r

! p, N& D8 z/ d6 y, J                .default_trigger = "default-on",
4 E1 d& {2 b3 U7 t# Q* V% o% M: z# K8 C  b- }
        },
8 ]; H+ i9 m! Y# \
% L$ }4 r2 V/ L/ D        {
. U4 y: ~3 }% x
, o# H- O4 N- Z- A5 U3 v: q7 }                .active_low = 0,
' I7 g6 @: }  @: a1 u  K8 @) e/ L, K$ ]9 o0 |9 t% G. @$ c. Q( g
                .gpio = DA850_USER_LED4,
' z. O3 c/ V& r/ H( i* W8 H0 G; S  i$ E
                .name = "user_led4",, @  j6 q& ^, s* |2 L6 U) b0 X

) U5 z% e/ z4 k% w; M                .default_trigger = "default-on",
7 }3 o# y2 q- L. ^7 g3 J. S3 j; d% c3 l$ j% P
        },5 i* M  n/ ~! z& D3 R8 O8 @
( D' G0 _! T2 h
        {
- L0 p  J2 w' O! ?0 p; G
5 j3 @. s) q5 A+ x                .active_low = 0,
( E) W. @/ J/ \* P! b2 T0 E0 u3 S* |1 N, O* a* m
                .gpio = DA850_USER_LED5,
- Y  C2 h3 n4 R$ A) \( U7 N- ]3 M# A7 b. \2 W7 L5 b# n# L
                .name = "user_led5",
6 R0 e; R2 U# U+ @$ N0 |/ f% s$ e& X( }/ H9 q( }
                .default_trigger = "default-on",- {# ?# D2 F: I0 I7 U

5 |  r3 X, k. z        },
/ w( {; V8 |  d" a8 v1 o* F* o! e2 K7 m& d$ B: u8 x
};
; H9 m* a& s/ H
( J& r) i; u1 Z! u% t: [/ b! O' R6 O6 \8 a& R7 c2 O2 J' N6 u
1 r4 |4 T* U3 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 Q" r) F/ o7 U+ a' Y* g3 P
5 m8 l7 Q+ R, G/ i
        .leds = da850_evm_tl_leds,7 o7 Y3 }. P: l, ?* z/ k

9 o+ t3 J, X/ |2 }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- k1 \' C9 e- p  ^
9 d) ?; H; |) @. W1 ^# W4 {};
5 j8 `1 i2 @2 V2 E
2 S, m$ n' t, a2 c
0 }6 u1 F) E) \0 I9 X
9 |2 u' N1 `! |  u  _( Nstatic void led_dev_release(struct device *dev)
& i; p/ d' C! a9 p$ c, b" n' G7 }! S( K1 e) U: ?
{
" M0 M# l; _5 S: _2 j5 |, ~& C- m' D, ^) _' [
};2 v" {6 k7 n/ w( y% p. h9 w* K
8 E& r7 w5 \+ o( C' c

; ^* E5 G  X( F7 \& K0 W
& {& I+ d) C6 B7 J4 a$ \# Zstatic struct platform_device da850_evm_tl_leds_device = {" |* L- [% ~) y' T) N0 ^0 Y7 D% ?

4 \( q/ T  }) b, z  P* k: P; V        .name                = "leds-gpio",
# ^4 e7 s  R2 k: S# n" u0 w2 x4 c' P/ M4 Y$ m/ I& d( p) F
        .id                = 1,
$ |) z' y6 @$ Z8 w5 F
6 r9 W! ~8 B) w$ r1 c) W        .dev = {
2 ?' A8 k: q7 |4 ^/ D& i/ v4 `: F. `3 Z) D5 Z6 {. C3 O9 q
                .platform_data = &da850_evm_tl_leds_pdata,  R8 n: a9 X" z8 C

9 |# U2 X1 t: I* {: S4 E, ~) Q                .release = led_dev_release,
' ?& k. ?4 a, s' P% |/ i' X2 q3 e. _& v: B0 q
        }+ M  \# t+ t. U8 J* k& f' D" I: J

6 Q: G' [5 O7 q3 w- l2 r/ [};
" h' J! n- z0 x: A
+ z( P) y1 h% K) |- ^1 s& J$ S* I8 {# A* G4 ]& \
) N0 w( j/ W& c+ o$ [0 B
static int __init led_platform_init(void)+ g" v- j+ q8 a+ t4 A9 X
8 r. L' |) |: t4 F! x! Z5 D3 w
{3 F+ m0 K& x- q$ ]

/ i* p- g, P, @& N/ G# \7 {! J1 k        int ret;
6 w3 L/ o2 D3 e$ U
1 x: \) W3 j, @* y' |3 g8 j9 H#if 0
& o. t4 b7 d) J/ e  B5 E
. p& x) }; o7 n        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( d' O7 ]% G* ^# L% e0 V) Y1 Y' t  Y* l' ]+ x9 x) Y% I/ j
        if (ret)
+ ]7 h: x- ?* w" F2 `: @: S/ r1 g/ L2 G& t1 N2 i* d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 a: X0 ]% v8 w5 f/ j+ I7 `3 W7 h/ E
                                "%d\n", ret);
+ H! n' H: q  N0 K/ w( |$ F) C1 m: X( k
#endif. \( i5 R2 p" Y
3 X( [9 P! D* n8 O
        ret = platform_device_register(&da850_evm_tl_leds_device);8 C( d9 U* N' s  q% v
0 n9 @) Y0 r5 z: s4 W
        if (ret)  C7 g4 t  d7 x7 K: U
  ~) J6 u. i! R! @8 n. f1 F2 j
                pr_warning("Could not register som GPIO expander LEDS");4 @/ ^  N8 ~2 v7 Z; L0 H
2 T# |0 c2 p. F$ u1 B
        else
2 T$ m$ u* \+ }
* V; e; h( Y; l3 ]8 l                printk(KERN_INFO "LED register sucessful!\n");! q- n# `$ F" K% f) ]( U
7 s( }8 m6 O5 {1 a
  H0 i+ p( L4 S+ Z

) A6 i7 T4 i7 u( e! K0 {        return ret;
" [; I; h7 g4 T# s  l" S
$ `* D9 `; Y0 |4 \, M. d}
. r) {- l6 y3 V, N0 L" C# w0 M# w
; u) E7 E, L* G1 P
! i8 b. y% B; f) d# C' y6 n
7 K6 w' ]4 i, i8 X' @! N3 F+ s1 ystatic void __exit led_platform_exit(void): R9 F$ W$ u6 z: t1 w' H

" T$ s# y, e' d) T{
* j/ W# h( U5 W* S) w/ J+ s  ^5 V, S6 D% N( w/ }
        platform_device_unregister(&da850_evm_tl_leds_device);
# b: j* |: x) G# c; U5 D( B9 W# U: B" B* t9 x7 Z, \
! `, B6 p; h+ R

% \$ w) M" U& b7 A% ]8 y        printk(KERN_INFO "LED unregister!\n");
( z5 Q4 ?9 q( [
) G9 A1 q" Y0 [8 I% w6 X}
/ X/ e9 J$ L& [; g* C
# Z1 {$ b  q' ?3 _: K; a
# V" c% A4 G/ V" ?5 G/ _( G( M1 _2 e( @! r: S( d
module_init(led_platform_init);( D  Y* [+ L* N. y1 h( Z/ d
) Q2 {: _" ~( V+ |6 Q* Z
module_exit(led_platform_exit);
4 I0 C, `* R4 J0 D7 R8 p
0 y" C( N& g! a2 J$ @
! A$ E, _% r9 g% W. T3 I. e- a0 w: ?; H" ]' q& n5 \) w
MODULE_DESCRIPTION("Led platform driver");
* \! `, }# |$ @
. V* [0 B% C# p3 oMODULE_AUTHOR("Tronlong");+ B- V3 Z+ M* l. e+ T. z6 t
" w0 n1 u9 G5 P; j
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
" u7 q8 i6 ~3 i; W( M

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32/ C5 s" w$ E( n9 z1 B2 Q+ @
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
& \, J5 j' C3 F ...

6 {- q6 ]" K) v好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
( J& z, r3 `5 E6 z; nhttp://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-11-13 07:58 , Processed in 0.056095 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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