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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 0 [% o1 a+ Z  P! O" F% q
( q7 `+ ~5 M; L% N) F- y# ~& c1 y
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
5 V. j7 z8 E! A3 g1 x; d1 ?+ ~) g9 }$ {* k
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
$ z: d! i6 \$ c2 J, z& r; B9 U- f8 D0 d3 ?

本帖子中包含更多资源

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

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
3 t- n3 g3 d# X  r" olinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
5 I( s3 q" H9 j2 O) r4 k2 D
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:" q+ ?# N/ P- V* n% @5 E  u( X
#include <linux/module.h>* m) {* p( e- P. `1 I
2 R8 @+ Y/ c+ N0 Q7 g
#include <linux/kernel.h>
  K) U( \! E2 k3 u
1 X6 W5 T' e  o& N#include <linux/types.h>
' P1 u6 S' b+ ?
' D/ x5 X& J# {# v+ j#include <linux/gpio.h>6 B" s8 O" _5 s! l
& d3 G* K% J- x
#include <linux/leds.h>) T, n% m$ X1 q9 c4 b' I

5 D7 E0 q9 p; i  w#include <linux/platform_device.h>
# `8 v9 }  R! t' C. ?& m# m0 w8 b) e7 @1 l0 p0 l# O
/ a, A; q% Z; q

7 G. k, y& b, y# p#include <asm/mach-types.h>
$ z  ~3 H  T$ Y& j* H' N! X0 s2 l( |: }1 }% m" b. q
#include <asm/mach/arch.h>& q  P5 j3 }- e/ b* i- h/ ]
  F. p# o; ?* e! f9 P# U3 x9 W3 w0 c
#include <mach/da8xx.h>
$ F0 A8 h2 T& B: t
/ s4 i* o4 U. w  A#include <mach/mux.h>
! @- t$ d0 b3 B
0 g$ B  `/ D" y6 [/ J
* X# E- V7 c0 \# o6 v* ]5 q6 p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! y8 }# q- [* @6 T
0 A7 M$ q' v8 w3 @2 z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, W6 a2 T( l& _. [
0 i$ [! U$ T) i/ _% W9 p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 V" n, C3 ], ~$ A/ a) @9 A) \# ^; p  E: s7 l) }" \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% T' y8 n( k& Q6 a2 k( G4 G

1 G1 ~7 k# G: o8 m( F/ X; k#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
, t3 W2 W) B# m% k5 s/ A3 u. i( B1 m2 c8 z( L0 m
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)  y$ A# C6 O: N) c7 w1 C
5 `9 w' y9 \. I
( X7 W" Y! c% p# O' Z! v

# B& |" V; F& O( y. W$ U' I/* assign the tl som board LED-GPIOs*/
% y% j# z8 v2 i" c& J; P
% B! b3 D( i. k8 \/ xstatic const short da850_evm_tl_user_led_pins[] = {
; ~% N; O; h1 V! f4 a9 G6 _
# U; H# q! J. l; @        /* These pins are definition at <mach/mux.h> file */# U! W: m1 ?" f( E. D

5 X4 c$ s) |! o* N- Q. I& C! t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,9 S5 T7 ?% E& G( B

9 ?1 }1 M7 S4 f* I, N        -1
: |0 ]8 Y9 X) R/ W& b: S; C
4 \  R& r8 Q9 j& o* T. E};, {) E+ A4 S$ v/ ]- h2 q  b" E$ Y
' e9 [$ \0 e2 E% ~  S: v/ T

9 ^4 l5 R, U5 @3 [2 V% ?( D" r0 s( r+ A, c5 p% l& d
static struct gpio_led da850_evm_tl_leds[] = {& v+ W4 I9 O* Y5 w3 z  Q, W+ Q

  c1 b% U# ]9 |6 C        {
; T! N) t% U6 X/ W( z
$ q( G/ H# w. r; @! |  {5 Z                .active_low = 0,0 B7 A7 E' \/ m, u. j
( h. B& l1 ~% b/ w7 p! c. h
                .gpio = DA850_USER_LED0,
/ v4 _% P, |( x7 {1 V9 \$ l* k2 _2 r' G
                .name = "user_led0",
0 @" I: R3 x+ N
: v! ~4 a/ }; C$ ~% a3 r, ]4 S                .default_trigger = "default-on",
6 k% n5 L+ T+ |4 M
2 E4 i' A! g: T        },
$ H7 p6 _- x3 _$ d' _
' c/ ?) E) U: T/ G5 e3 P8 V        {
. W3 J3 H4 Q+ j( t: A/ X7 v* L( X" D$ n) b) k
                .active_low = 0,
& v  ?! k9 k1 b) k0 G" M7 F. L: ~$ {
                .gpio = DA850_USER_LED1,7 f$ L# v! k$ @' T1 g" q

0 C3 `, x7 I3 n7 W: O  B                .name = "user_led1",
2 x8 c" y- t5 q8 ]9 b' t' i5 \" W. J8 G  r  s* Y
                .default_trigger = "default-on",
, Z; E; N4 b- ^' H( _4 @7 n, r* G& G
3 ^$ m& C. B2 h  l1 B) d# k        },! L3 n: o1 u1 |2 D( D( m) F
% Y8 o7 C& r# F: o7 D6 M4 g" n
        {
' B1 x+ q& b$ t6 Z5 `
( C9 ]7 V9 Z" Y4 F                .active_low = 0,$ h# ]4 t* E: b5 I1 t( y# @

- s6 B9 q! O1 r9 s                .gpio = DA850_USER_LED2,. T5 i8 x5 n8 k  X: @# s
0 X. Z- {+ I9 S0 S) ~6 s1 j
                .name = "user_led2",4 Z- _9 k( U( ]2 x# m

  i+ j! W% J4 O8 O                .default_trigger = "default-on",
4 ~* o0 a& e, p- j8 ^
' c. u- l2 S0 V5 e& ^5 y        },: A& V* m8 c0 K; u. X

1 Y7 g1 O: R7 A0 ^: c! W        {
- Z6 q+ N  g' h' e
! m6 c& R* A& U) C% p) i                .active_low = 0,
) K( b) g. k6 D, J4 w) e  t+ B' t7 J# [: M$ Q6 h! f
                .gpio = DA850_USER_LED3,
9 q* S7 {/ y" Y& Z
5 ]; K7 I/ V6 J$ }8 k  A% L                .name = "user_led3",
+ I) s, I# O: m' w4 e5 u% ~2 s& G/ V3 N; y/ h; Y
                .default_trigger = "default-on",1 Z! x# T5 b; a  N$ z3 x. R
9 ?, h7 f8 B9 b# H
        },
6 e, M) k# n# e6 D8 n# I& O: M
* W( _5 A7 R0 x* _; z        {
( [& S- |9 P5 [/ a% F3 d: x7 V& |$ ^6 I  U" {- U
                .active_low = 0,: K1 D! E& N3 k) C1 p
" q. [$ \( x+ m4 y. j! n
                .gpio = DA850_USER_LED4,8 H; u  \  A5 [/ \9 S! G6 b

% @# \, `  P- F2 e) M                .name = "user_led4",
; d$ S7 Z4 g- f7 |5 b
# @6 R+ m+ f% U/ |6 h* `                .default_trigger = "default-on",( ]8 H+ o) I6 U* U% x$ u; k3 o  Y7 E
/ G- A! O4 M3 e+ T! N
        },
# a* ?' |4 c! O4 v
, `: X+ W; x7 ]        {" R) k9 X4 y* d  ?0 |' B6 T; T
2 R8 I/ x8 t" ?% O; ^
                .active_low = 0,
1 v% D- U1 R) Z+ v6 Q/ V, {/ W2 U. W
                .gpio = DA850_USER_LED5,
2 I6 F; G. Z: z0 [7 O; ]9 E" G, c- e: N0 |
                .name = "user_led5",
" d9 J4 Q" y6 u  j0 C% W4 t7 x% Y( o0 ~2 X3 l2 Y: o; J# j2 e" v
                .default_trigger = "default-on",
; e' `( o" B& _2 s
3 q! Q8 x1 j: y; X0 n% k        },, l  p! k* x* K. j5 @

) [( u" H8 C( q. ?# i$ {3 Z  {};
* W% g5 _/ d2 q( k3 D( s
; ^" s9 p, G! `0 K) c0 t* _- s( P
, R0 {( z+ a  f# \: G( p* S; X  D  K) G4 J' Q4 H% i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, O5 F! F* q% r+ s3 n+ J2 M8 m
: t1 |# p* q' l9 j
        .leds = da850_evm_tl_leds,+ L1 G$ [3 d; e6 K* d, u! H
& n5 {+ d1 ?1 p% b( o7 ]0 e7 d7 g: Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 ]' s2 w+ K2 |- l

: [5 a8 w$ E" Z4 F$ W};
2 U2 L9 A9 f# I' v5 U; x
3 ^& L  z0 a6 a0 r  d8 ?
0 v# ]9 T9 a; U" K: j( r6 Y6 ^
) C) c2 _3 d0 p0 t0 Z( f2 V& tstatic void led_dev_release(struct device *dev)3 W1 D. e$ ~: C8 f( M: @6 r

  U' P' @! \" }, k; j- \! R{$ w/ N( O4 v% q% M/ _2 O

4 f$ E$ a9 l; C8 C8 Q};
" U6 t* J1 [. Q; e3 W) o( Z/ u5 k
7 C  [- E9 ?6 i6 t: q# b% I
8 o  N: G& r3 D8 x6 }9 f
4 x8 B, b" I# Tstatic struct platform_device da850_evm_tl_leds_device = {# [5 q' M( f" V6 c' ~: X; G

6 Q- a! O" |) G( e" `: o% C7 r        .name                = "leds-gpio",8 k2 s! S/ ]( @# f% Q
/ y3 Q% h( y1 y9 |% ^9 ~
        .id                = 1,
8 K7 V2 D; A$ d2 p( w+ \# {& y+ W1 q4 a- s
        .dev = {- U6 d! F$ @3 r& T' o

/ z2 X6 Z9 G7 O' ~$ o+ k- ~                .platform_data = &da850_evm_tl_leds_pdata,
% |1 Y3 e0 @6 v% q
" e+ o0 j6 J1 |5 K# H1 Z                .release = led_dev_release,
; |% n8 L; E' u, b, L9 i  L; P. v. O. b
        }
) x  _- |1 n: f% [$ h
/ Q6 f) J9 r( o* u) d- l0 T' ]};6 x4 A* `" {. l4 [" G
6 E0 _/ t5 D7 J4 |" L  m& C

' W8 `1 X3 k+ @7 S
# l" k% v, o3 p) S& d+ ~static int __init led_platform_init(void)+ a! W! T1 g% X# N/ [8 [- R
  H5 B; d8 m) M2 ]* ?: @  @0 r
{
; a4 r, {/ H' M% i( _( S
1 `& {+ f1 I* N) n        int ret;9 k2 a2 B8 }" R7 _6 G' V" t% X

% i, T- k3 U2 @: I#if 0# }$ @% M6 E- ^: t
7 r, F3 U5 r6 W& b3 ]% y. D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ m% @- t8 b$ s' v2 I0 G+ H) S, d* z  X1 X2 x
        if (ret)
" t& V% I1 o4 s5 D. t0 N0 x" v" u* H2 p- I1 Z5 \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  a' `, m2 ?! Q1 Q5 D, y
3 a6 V+ O9 w: J& v                                "%d\n", ret);
2 s! ?3 x. y+ x* G4 J
" {- J7 k& W) m& m- ~+ k# q#endif. W' j- y# @% R$ P" d8 h$ E

4 I& m& y7 w, c- `7 T& d+ v        ret = platform_device_register(&da850_evm_tl_leds_device);+ I$ d" k/ C; d/ a
2 q/ \; f" l4 }3 B1 L
        if (ret)2 L% d: f6 M7 g
) P1 G, {( L' e% m5 {$ @1 d
                pr_warning("Could not register som GPIO expander LEDS");
- _/ ~4 ?" }- l% [
( Y1 w, T, m! Z1 }* R1 ~: v* ]5 A        else
2 `- j" M3 Q  J  M
# J' X) G+ @5 z# f6 d$ M5 d                printk(KERN_INFO "LED register sucessful!\n");
# |( A( v0 R4 b" O
6 W+ k' F; q. d! N  @+ ~9 E; N& E
7 v1 @3 b( G6 d; s% C- h  F  m% ]; m! s" `: D* d( K
        return ret;
( d$ o5 g9 R2 e8 k5 S% |5 S0 W& s. U0 Z9 s) l( W* I
}' F% v( V- v* v1 H4 w; s! _
) q$ k" U7 ^: I: I' }* }
8 y+ D  y" ^. N: |7 p6 C2 D* v8 i

; F  B' c7 R% L0 ?; zstatic void __exit led_platform_exit(void)
4 ]- U' f& o; L/ Y! u5 M9 p" {5 u6 F% I% _3 Z* V  L. {1 K+ ]$ Z/ Y
{
8 A9 J# \) E) j2 A" C5 Y6 f# L0 y- U; P: I1 S$ E
        platform_device_unregister(&da850_evm_tl_leds_device);
" m2 J% u. C6 ^: ^$ g  I
0 f& N1 _" U& o' T# {+ r- a& L$ @
- H' i) _: [  r0 e5 ]9 m/ @1 j! l4 [, n
        printk(KERN_INFO "LED unregister!\n");
* d7 [# P# o4 H2 ^; b3 R1 a1 S: ?: e6 k
}! L% r8 m5 I: ?/ T

. J& N2 W3 o9 G3 f8 j7 f. _/ A9 q2 W  k2 @5 L1 ]8 V4 ~, s1 t0 i
. \( c) V: K6 p5 `, v) \* y( Y
module_init(led_platform_init);
5 u9 r  J6 H- r! F% k  V& b* w, o5 P. C# n4 m/ M
module_exit(led_platform_exit);
5 c3 L+ M  H$ t
$ c$ A( r3 Q4 d+ V% L3 [1 }  w* i8 y/ H) [5 p& \
3 Z9 n0 W! r5 O2 j0 ^& S! s
MODULE_DESCRIPTION("Led platform driver");
* r1 z7 Y: b& F3 U% f1 i1 [3 m. L9 Y
MODULE_AUTHOR("Tronlong");
/ i' N$ q0 d0 r* }) r, L% l- c3 |
* N4 m) V0 q( V3 i/ i/ j" FMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
3 C# R- r& @2 r) s/ o- Z

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
8 Q; w! R1 O5 I+ Q/ {( V您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。9 f: B: [+ H, H8 |% m( _) ]; F
...
2 _0 R0 P5 |5 E
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。/ O2 X# y0 M+ T# d2 j& N
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 11:03 , Processed in 0.043687 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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