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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
+ b- g9 v' c6 E2 G9 m9 C! a
% w+ I$ ~& p! ]% E3 y1 F请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的8 Z/ v% F2 B3 D4 \& y; m9 p3 }2 B

8 z6 p7 R6 C. q6 ^3 v) E之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?- R6 d3 a; D  c6 l& E
) l$ _1 R/ D& Y1 \- d4 R

本帖子中包含更多资源

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

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 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
3 T4 E* H* C/ X2 ]( M- zhttp://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* _( Y4 M+ ?4 x% y: ~( w
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。5 l9 ?; ^% R* n' S
...
3 r8 M) M$ [6 d- h# a
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
& [: \! k/ b, n5 E

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14; I( \8 ^" Z$ H& z3 K9 r/ B4 @
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
" X4 N, M& Q& p9 d/ V9 ~& M
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
) h$ o; x) m; h4 K7 x9 l4 ^2 J3 \#include <linux/module.h>
0 n! \) J# {+ u* ^5 u) N+ |$ G0 _! O. l! B; T' _8 E% n9 N
#include <linux/kernel.h>8 M2 W# h6 h/ N; \

/ r% h% x* y2 g4 I, T5 [#include <linux/types.h>" f; i6 A- X$ F9 u; a; x; T" P

% T/ N. E% B4 j/ V7 r#include <linux/gpio.h>2 P0 j9 A# B. n4 z. A

% M- S) _/ m: D/ u#include <linux/leds.h>
' p0 K8 D8 {3 ]! b# l' a/ f$ f5 [! x' ~6 J" @; B2 a: w
#include <linux/platform_device.h>3 x' p9 p  J# x# N5 s

+ q; u$ o2 E  N7 M
( ?; @* }: m- m* N% J
1 W+ U) _' v/ D0 P4 U4 ^; v4 H#include <asm/mach-types.h>/ Q( g7 r  Q# e
; _$ t6 j0 ?; v9 E
#include <asm/mach/arch.h>/ B4 U( x1 b, r. v3 |* [
% r. c% B# z$ O9 `1 k7 Q3 I8 x2 e
#include <mach/da8xx.h>* s& ?4 |2 F( k8 S1 P! U
* m% R4 d& l8 e- U5 H* n
#include <mach/mux.h>
' f& J  |0 P$ C, n' _  I& c* U0 ^& d6 S0 M
4 ]) m* D% T( n- d( F" \1 R# v
3 h% Q# d, |: }' Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( m( }8 [& W/ k1 D* P, h
5 |' w7 Q" j$ j  u. p# y3 X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 w9 f+ Z9 z& T- Q: y
" ?( _3 I# L1 @7 I$ ~3 _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( u3 v* |/ A6 w+ d" T# y: ]3 t# [" u9 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ z: h. S# ~1 t; ^' @, Q& S6 \9 p$ P5 z) M0 {, U" P& `8 Z
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
2 D/ k* J% y4 F/ a, |
1 b$ ^- p* X% e#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
* p1 i9 w7 S3 a% ^9 m6 ?4 a0 {6 K4 S$ l9 B5 ]5 F
" }+ ~* i* b& _0 v
8 \/ q" z  T7 L& Z4 H) ]
/* assign the tl som board LED-GPIOs*/
* E+ N5 ]- X. \7 L" i
8 P* _+ V1 i  v% fstatic const short da850_evm_tl_user_led_pins[] = {$ \: j3 Z9 _  }3 T8 Y- v4 ~4 h

' r' _2 u5 n( y0 x2 L  I3 }        /* These pins are definition at <mach/mux.h> file */
6 ?2 \2 u2 e  T+ P8 Y. S/ g
6 {9 X" p) F) V& q0 V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
+ X5 |! ^9 S- ]7 p1 K9 r) `$ ?; s& Y$ B6 D1 _" r
        -14 J- ]# Z+ `! X- a
* n8 H% F+ }9 n+ A$ H+ m% }% g
};
. A8 @, R  G/ V  U2 E- l% u- N, B* o7 a5 v

; R3 ^6 Z3 s0 G  a% d+ ~* ]9 i# c% p1 U
static struct gpio_led da850_evm_tl_leds[] = {
' w4 L* K! h! q5 M/ F3 I6 X/ N" a' a, j$ G: S+ @% r
        {  b5 p) Y' i. x/ M! Z$ w# D9 a. |$ X, U, T

: c( H+ @( T1 k. ~+ n* A' w! f                .active_low = 0,4 @5 M& z+ e! X) M
2 S4 H4 e1 F1 w- C
                .gpio = DA850_USER_LED0,
% u0 b, i) i# u! q* C- z7 w0 s' d4 J" e/ L
                .name = "user_led0",
3 c0 h: u4 }) S. i
/ I, r5 D4 C  C- ^4 ?. T3 g4 n1 T  m                .default_trigger = "default-on",
  R+ ]  n; @( h+ ]  h3 ]
8 o8 z. ?0 o; U* H* N9 F        },
) K3 z# d4 j* p, \) q
: @7 O. @+ \- c% O% z        {
/ J  l3 |1 h' E1 _  y2 D; M
$ q) S! {. l/ p! \0 `( O/ }                .active_low = 0,
6 s( I* ^' ?, ]" w. |$ Y) a% ]/ R! w' ~! T) u. _) g
                .gpio = DA850_USER_LED1,8 ~+ v- o3 @3 D& F

; P) O# {6 b5 R+ X                .name = "user_led1",
7 _5 I! N2 Q+ x8 Q- z
7 r/ Q4 P  W/ ~; l                .default_trigger = "default-on",$ @" ~9 f$ U$ D1 v

6 T8 W, w/ l( X1 R9 h: _9 r7 @4 y& N: B        },! U+ e, i: J; s' G4 F

  N8 ~( A8 u/ W" ]0 M; a        {
- I2 ]& w) l# E: R5 E! {) W1 n0 J" c6 g6 }
                .active_low = 0,
: T9 p3 }6 t8 g; x: K
1 |1 r- z( @, P7 s$ [) F) O2 h. J+ `! e3 ~5 R                .gpio = DA850_USER_LED2,, b$ r& A; H: j% ^! l# t  U

! ?  p4 @+ K3 N! t, T% p  k* W                .name = "user_led2",
  U6 p3 g, a% S; p. k! u) v$ e6 R7 j- {! b
                .default_trigger = "default-on",
4 ^) k* x( C* u! E3 R! H' Q0 j" i4 G5 L; }* G, {* ^
        },# l( x% N! z& w. a1 y. g

. s" y+ r' M& J. R2 r        {7 n7 [$ `# F% {! r. S4 X$ x4 i- C

9 R7 v  H* x% U4 G0 q8 ~% W* o, r) ^                .active_low = 0,
$ s% X, ^# g: R: E0 Y
4 i3 E) f/ d+ _% J                .gpio = DA850_USER_LED3,& `  r$ t# S; w3 l: W* {% F8 w( o& S/ B9 d
/ q; V2 Q- g* n+ ^9 }
                .name = "user_led3",
9 u) m" b; ^2 T* J
6 |' J% p0 Y" o" ]                .default_trigger = "default-on",
- P% ^7 \3 |: V" B+ H3 i$ U( s
8 ~- A# y: e' N/ `& S: G        },
& r: V6 v9 E. y  n3 q7 c" [2 g& [" c) J. y
        {* S0 x) ^% ~; V: D

4 X9 g3 q% y9 p                .active_low = 0,! I  r1 c+ |& t/ H+ E5 \" P
+ I- t/ j( d+ V7 g; O% p
                .gpio = DA850_USER_LED4,
- x' ^, D  d& q0 I2 \9 C
( A# {# ?3 [& _* K7 a9 V                .name = "user_led4",
, k! J; m* t. r: R  _+ W- T% ]% H6 `) p3 i1 ^3 O
                .default_trigger = "default-on",' ^. t1 j5 |# g+ N6 O( e; e
) M3 \1 D& \$ K, r
        },
, s* H* w& Y5 g6 Q0 C: N2 X# p: z) C0 J* [5 I4 L8 ~# u
        {
# D* ]5 c! p$ ~
! P) Z2 y. s. N& W! f$ D' A. u                .active_low = 0,$ H8 @5 E: w# V( O

7 F+ v- z2 M9 G" g. I                .gpio = DA850_USER_LED5,
, c# f* e4 A; s+ f' H
' S$ r: [2 D% D1 W. b% p, _7 h                .name = "user_led5",
0 p4 g$ \  A' V, ]# ~- d& T% v  w& T  q+ Y: y0 i
                .default_trigger = "default-on",
% o  U7 C3 M1 p* N+ B( X3 }' J1 R. F
        },9 O0 _- x4 X) h* N" [" H
: A) W4 g* y) P! L: _
};
6 v" Q4 p* o( \+ J8 G$ B
, x+ V8 j% D, [" z2 h8 W6 R; g2 |* }8 ~9 w/ ^5 N# T. ]5 Q. r
1 H/ M# n+ n2 c2 {5 [
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 s$ z, y# x: G/ r8 x
9 R9 l  b/ J+ L8 D6 F  W# D9 }
        .leds = da850_evm_tl_leds,: u& V3 A' h. j6 x0 A  ]6 l
) A" ]$ e! l) `1 ~( B9 F" w( R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 {( A- J0 C8 p: D( Z- e( W! j3 ?, @  e5 Q% [
};6 [* \. z& _: W* ^: F

3 v: w! x% T. v% v
  m9 T% Y; V6 W$ S; n1 M8 n" s
- Y. D" p" X0 G% A5 Sstatic void led_dev_release(struct device *dev)
: A) T; a6 v; ?9 r4 G- @6 x8 m/ S; u7 a6 Z
{" S/ ~* B, H! ?1 m5 V: {: x
  L1 a( |1 u/ o+ H. n$ p$ n
};
: \) b- w1 L1 d* U8 M' }% x5 N/ x
, g; _6 E/ ^3 j8 O3 f" H( y
, V3 L* M. z3 Y! a8 O: G; A' |# _. O3 M* G( b$ {
static struct platform_device da850_evm_tl_leds_device = {1 B  ]! H3 o; U

, |- ~. i  b# |        .name                = "leds-gpio",
( a2 X; J1 t/ s5 Y1 Y6 P! }6 @. Z4 H5 U7 Z1 T8 A
        .id                = 1,
, y" p1 ~, Z$ ]8 z. E+ }# g, s5 i% @9 B" M+ F7 y
        .dev = {( v# r1 m( K. C8 A
; Q% A( J- q! L/ f( }
                .platform_data = &da850_evm_tl_leds_pdata,
! ]8 i9 D8 e8 K: }8 {  \# O2 ]4 u! q4 e& p* I. S
                .release = led_dev_release,
1 h- M" A; u4 ~# ^  L
! C* Y9 [" e- K2 C. E; ?        }0 w! D9 A' k8 V/ b& S; |* m6 J
4 W* k( n  x; [- K
};( b, J4 j# J. H* L3 V, B

. ~4 l& _  |$ A" \. B, c2 B) w! |) \, `! R8 b& ?" L  n/ R
6 |3 ~6 r* {* q: D
static int __init led_platform_init(void)
% D: G% E/ z9 [: |) O7 A' E
, x$ ^6 C& L, w# l% s/ k( ]+ B, f{
  M. Y5 M1 x8 z$ m9 D; k" Z3 s. i) j' D+ A8 f) W
        int ret;
# }7 x& G4 Z0 H, a5 \
' d1 j) w* T2 f#if 04 W& Y5 S3 F% t1 S/ [) S9 P

% Z9 V) Z2 I8 d0 b! k7 ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 p8 y0 |( l: r/ e$ V' m! i6 n
1 A* M; ?- x  `! Z2 x! E        if (ret)
) T: C' o; h1 G# K" f/ m9 q4 m0 A  q7 f9 C$ q, g' u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' {9 r, A1 D0 U2 a! P! K' b
9 o0 m* w3 {: J* U                                "%d\n", ret);
3 N; r* m& X5 }8 ]9 ?, ?/ {( k# f, d
#endif) E* w  p$ T( h! Q8 h/ s2 Q
% }( Q5 ^! Y8 U, @. ?
        ret = platform_device_register(&da850_evm_tl_leds_device);" |- H. T6 V! [# `8 P7 b. C

4 X% b# v, V8 M. n8 G7 h/ L) e# \$ N        if (ret)" v) E5 ^  J9 D" g* ]

( {' G% Z" ?4 _, ~& U& ]: Y- J" K                pr_warning("Could not register som GPIO expander LEDS");' W; G: G' }4 G8 t- Q& Y
. D: K% t6 G5 u2 F1 y7 r# _
        else
% v& i2 i7 P% |  w2 p* @/ O' J) d' T
6 O" ]  X- X) O) Q                printk(KERN_INFO "LED register sucessful!\n");9 m* O; H! a- ^' t
. O6 A- t& @& S4 n! R
/ Y* h) r$ N  b# z9 j
8 ?6 ~% Z  o2 S% \
        return ret;
# D  V8 R2 N/ g, W' e& m( n* B. J' n6 e0 h8 M
}+ N6 s( I, @7 v8 ~$ G1 u- n4 B* i

( M' e2 I+ v- B+ j4 w% x8 W
. O; g7 |6 Y" d) v  b( x) l8 P9 R1 ^' _7 G3 Y+ I
static void __exit led_platform_exit(void)
; T3 j7 w- `1 s4 h: y8 [! y4 B6 k# u; c
{# K/ a8 Y; r' _4 ?6 R- W. W
+ o2 b& U7 w$ v# n, O8 h
        platform_device_unregister(&da850_evm_tl_leds_device);! _% ~) n$ I- N9 ?1 o8 @9 u

. A, s2 h% a5 s3 |. T2 ]' ]1 g0 R* U9 ]" `, c7 |8 w
9 L. q6 u3 S. g# ~6 n
        printk(KERN_INFO "LED unregister!\n");  v$ I6 v/ S% A! m+ {
* g6 \9 R, P( c- O
}" ?" d- [4 T( W3 W$ t! ^

& h& J1 n5 w7 o& n: T# u) [; n1 a# Y! t: P2 f" v

) l8 @& E9 _& Q3 [# `8 `3 l6 y6 xmodule_init(led_platform_init);
, v, u) |; i3 T; }2 F8 H  W' i# A- {6 D# M' P
module_exit(led_platform_exit);7 F* V! r7 S; c& {# c/ F0 R" x0 p
; ?) p$ H' }3 c6 J. C! g; s

' b- M8 {1 _- e
. _4 {' q) ?8 f9 ]- \2 C* [MODULE_DESCRIPTION("Led platform driver");
" Q: e; ~( n  M% q3 O
2 r/ s5 [4 u" ^' m1 _9 M) DMODULE_AUTHOR("Tronlong");, H6 L+ c% L1 R7 W  E$ v& }( Z3 P) u" b
9 E8 J. G5 x2 b7 Y8 e8 r, u
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 17:38 , Processed in 0.045508 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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