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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
9 o0 S0 E- c7 i2 V
) I5 u% [, |6 j请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
  J" c4 t+ Z2 p. @* v7 K  s
+ S  H0 d2 K- ^, v2 ^3 w之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?- n+ r* C- R" {

+ ?- W. U4 a/ @( j' H% ]

本帖子中包含更多资源

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

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
; G6 j4 ?( ]6 h- f2 W9 f1 p% P' Wlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
5 Q: W5 C& ?1 T* {  a4 Q: m) F" C
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:) N7 d3 t3 X) J6 K8 \  E5 ~
#include <linux/module.h>
; u  f# ^- \$ g* c, R* j0 ~% g; P  v: \7 A/ _% u
#include <linux/kernel.h>( k5 ^# ]3 ?9 I4 w# X' w

2 _+ D! b1 P& a( c5 }4 f& H2 {& Q& q#include <linux/types.h>7 z: N+ ?5 q% n( M" s' b
4 S- B9 ^; H6 N4 K  }# y* g
#include <linux/gpio.h>' f# r) R1 T, p4 Y" P6 u

9 J1 B7 O; j, b$ Y#include <linux/leds.h>
9 \) u, G9 Q3 `7 u1 S+ X2 c( T) `+ e$ _% A/ {/ {
#include <linux/platform_device.h>
  P; T1 \8 w- G% \9 O, t! S8 C. r
1 f; m& l4 r& y; |& W% d8 E
$ _0 M( j' R5 J: o1 U& m/ @" ^
/ B. ~) U6 {2 @7 }, _5 C* }7 J5 A#include <asm/mach-types.h>/ q4 F9 M& z9 X- L6 V: [! ]. M

  A6 ^# W% _9 U, t1 E' m0 h0 m#include <asm/mach/arch.h>" P1 X  i' T9 ^- b% g3 Z; Y- R

/ e! o: p' q. E* P# A9 G#include <mach/da8xx.h>& r; B) _0 A  [# \

+ t/ C/ A; u, u4 q, b  S! r3 T#include <mach/mux.h>) z+ E2 g3 r5 W2 Y. M8 Y! r( f
+ Y1 |0 d6 V9 l( X7 R& v
$ O, v0 P# i# J2 s
* N5 V; }0 H+ W( ^- U9 z( O- L0 Q( G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; B0 B* |/ R! C- e  s% |/ V3 U& l/ w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# m: M, B6 |8 ?" R* N8 Y

4 \8 V# Q7 S, T2 y* k% a" P#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 `$ G/ y7 `9 Y8 K+ b5 h% e+ A7 {1 u* f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 z# G( L7 v* l; C7 _- J5 S8 j4 Y0 y2 G8 a' r
#define DA850_USER_LED4 GPIO_TO_PIN(6,12): r- h( o! H- Q& b* L. d

; T6 H, K& L0 O! |2 I! z$ P#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
( Z& F; Z# U. x* C7 S- H1 Y/ @7 S& ]1 E3 s! L. Y

& S/ R4 W7 ?8 ^7 w' a  @/ a: p/ [5 {; A( p
/* assign the tl som board LED-GPIOs*/) U+ W1 A! M1 P4 b
% m$ }& e! I9 W% E# k
static const short da850_evm_tl_user_led_pins[] = {
6 p* e, e8 M' S% [# c* Q4 |
: R; b8 Q5 }8 \  q" U        /* These pins are definition at <mach/mux.h> file */
& }; Q1 l7 _3 c6 i2 k( e
. \! V& Q4 @( l, K1 p; [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
9 ~# _4 P0 l" T) I' U; }; r4 l9 n. R: W% K4 S! e! t! ?0 C
        -1
) ]" ~+ x3 v. u; r% u/ D' p
4 e  n; Y; P$ q8 C# D};
7 i" n$ w# w! x+ U" Z3 S/ t+ J1 G1 Z6 m5 @6 _# t# K8 W, n

2 ^) p% Z8 _% ?+ g" G
! R$ w! D) R/ `- Ustatic struct gpio_led da850_evm_tl_leds[] = {
- F- g1 G; B$ w
6 R7 @  [0 h! l$ N' z/ I        {
% y0 ]8 P4 ?: k
% m0 _4 f  g  U$ J5 _# C/ n) K                .active_low = 0,; g/ a4 U. u/ A; _" L, g7 h' ]
& S* m2 y- ]$ B/ B( A$ W
                .gpio = DA850_USER_LED0,
  x2 _" [5 z, c  c
& @  }: r* V" O                .name = "user_led0",
; ?/ o. L2 s' I  [# ?6 N) ]0 I9 s# Z+ j% F/ X# c
                .default_trigger = "default-on",
% G. n% F. Y0 i# w# j: M: F$ }. y$ t* r8 W- K$ q- I
        },
' D. {7 K  t* {( s1 N/ ^  f
5 @: ^& y0 M* _* ?1 g2 W0 L        {
  b) o3 H' U6 M7 n* J$ n7 S: q* x. h0 Z
% V3 b; d0 b! e2 F; l$ c( L                .active_low = 0,& {! O, O. o5 k) i

8 [7 {7 M! y/ i: C                .gpio = DA850_USER_LED1,
% m1 |6 P- d! p% P4 o2 m. v9 H- t9 v# n5 q* @9 S+ P4 y
                .name = "user_led1",
/ z: I0 S# D% Z, q0 r7 `4 k4 r! C6 [3 G) F' ?- m2 F# y
                .default_trigger = "default-on",! e- b. s& i4 M3 y! N8 H* H
7 {, T; O. m4 d1 c
        },5 `% F! e  o) ~
3 w& E7 g* ]! l4 O
        {
: p3 H  C% l) |
% S, `, `  S  _4 V7 P0 r                .active_low = 0,6 Z& ]% H' X, L( D. p. n
) u) b( r% P# k3 _
                .gpio = DA850_USER_LED2,  O9 x: x7 G& o4 v8 c1 N

' a0 W; Z9 ?5 P# Z  c7 s                .name = "user_led2",
" e1 h# y+ }: ]; C) V& o: M( ^3 `; A2 E, ?& z3 D
                .default_trigger = "default-on",
" c7 n" Q$ E7 d2 J, }1 E0 a
. j5 d. y1 w8 W        },! ?$ u/ \4 |7 Y8 ?
5 |; ^* _) T% [5 }3 c+ Y: h
        {# w7 M" S, Z# p6 C$ {7 N& M9 p

7 D5 T( }7 W. S3 y+ S' p4 j                .active_low = 0,
' P& p* m, E3 }- c; t) A* O8 [! V7 `! u1 \( ]7 W( {$ Z% b9 ^
                .gpio = DA850_USER_LED3,. t0 ~& j: B+ H
8 z% Z, N; C. S
                .name = "user_led3",8 O/ V- p; \4 h* D9 e
  G" @5 ~2 }$ @7 b( R
                .default_trigger = "default-on",
8 ?$ Y& C. M6 I- H8 Z6 T
) |0 ]* X  M) K9 v        },
" @: s/ _& z6 A& R- {# d7 }4 ?; J* I8 V5 J9 K/ r8 w6 k
        {
- g) Z" C9 {: Q; b- X( x  Z) i0 a7 W5 K/ v
                .active_low = 0,9 h: |0 @* j& k
1 N% |' i5 W' F$ f  g
                .gpio = DA850_USER_LED4,( c8 b4 H" Y* A# w& |

. g# s, B/ w2 N% \  Z  |                .name = "user_led4",
  P3 j! A# u: l* B! ?
# Z+ G% R. d1 N7 P5 k                .default_trigger = "default-on",9 B0 S# k, U0 U& U( C& [4 c, Y
, p) g: B8 z& d  Z. z% a6 p, Z
        },1 T/ _% U6 q9 T

# ?  X! U. F! ^, _* P3 \        {" j. F; [9 t5 ]" p0 M+ S  z
5 ~0 Q$ t' d. }1 F# a8 _* F
                .active_low = 0,  P' x- d0 ~8 T0 t

' I# y/ @& U7 G6 Y+ X5 H  X                .gpio = DA850_USER_LED5,
: q! e  k8 F! X0 A) [# |
* ]7 c, \4 Q/ N/ o' J+ u- E* _! P, E: x                .name = "user_led5",. |: M  K5 V2 |5 ~

4 [# Q; l) K- f7 n0 @                .default_trigger = "default-on",
. p' q" `" y" h! l2 n, Y( e$ p+ k; v0 T7 ^  j1 ~3 X
        },
- B3 d+ n* W, K7 R8 u% {. D% g+ S% ^5 [3 {$ Y
};2 y4 j' A  i3 `7 D/ J" {, n7 m
1 }' I1 f# v  p- i) k

$ C- k, a. S! O0 s$ }5 U+ U0 b6 Q3 g5 c5 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" W& ~* `8 U7 f; P! @
! r7 S# ~8 I% e
        .leds = da850_evm_tl_leds,
+ [- V, w1 q5 I" |' t7 L+ E1 f/ T5 E
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 _5 W) H* \; B4 ~0 |% e( N
9 u! k# C7 t- u* G2 I( J* M
};  V$ a/ M3 E! W% ?3 m% ~

% v! H& \# q3 S6 }6 {% j
, k& i3 i: D# Y3 O4 X5 ?8 h3 v$ d) r- ]
static void led_dev_release(struct device *dev)  J, @, K5 k0 N8 o# t( m5 p

, J& Q0 [7 Z' d  [{6 _0 x5 C1 `' b$ R7 o

9 A1 y- Z7 C: v: J& I};
( C1 x) W& {" y: }
, [1 v2 f( `/ h7 C+ ^1 j: g. ?( {3 Z/ I3 f2 ^' b

1 b' J8 T+ f, a* |7 A% ~: @  T7 ostatic struct platform_device da850_evm_tl_leds_device = {
; ]7 T( e. D9 ]/ E% ?: d
: K8 V7 d" m/ u& Q- j        .name                = "leds-gpio",
6 h! T1 H/ G# z0 ]7 w9 r" R% A+ r
% Z9 F+ R# F$ _. G, Z        .id                = 1,
; B% z% G* A4 K; N) X* Z
  O6 K$ Z! E2 Y% K! j# h( m7 G9 H7 u        .dev = {+ J0 ]0 |9 I0 x, X9 ~0 r/ X4 b
$ e* `6 R. T# t; u) O+ b* D
                .platform_data = &da850_evm_tl_leds_pdata,
, h3 e2 L; ^; Q, V9 x+ l- A+ P# d3 \6 I: E) g
                .release = led_dev_release,
( D: v( C* f" j" {8 P0 T$ ~% L- I. C  C# s
        }
; c) `; r- J* J! x* p& l7 r# Z: _/ N% x2 }6 s' C/ l5 y- w# J+ V) y1 P
};
( I, ^+ s2 K8 |1 U+ S+ x3 `$ Z
$ q0 s: W0 P* X
6 ^) T+ v2 n& {' p, }$ d( A2 H& U3 l+ v, u" v8 D9 C, C: y$ I( B
static int __init led_platform_init(void)6 i$ N! n- ]: u- O9 ^6 ^4 g1 E% C

+ d0 P/ A' K  N" t! d{
9 W. O6 k+ Q! Q1 r; w
& {" B0 d1 w- P: ]2 {        int ret;+ x2 x+ N2 c, M

9 R7 U; H3 r. N#if 0
! Z" q# P; u) L) D
6 P# g* q+ }/ Y7 {  W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: N- w. u  d2 W7 S' p9 M/ O6 P1 |0 K
        if (ret)* r% ?1 m4 {/ R: T5 o" D
8 A. @. P" l8 x
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 X1 j" ?/ \6 U

! S) c! [9 ]. |8 U8 _                                "%d\n", ret);
7 H$ F3 V$ p% r* o% B3 j4 M2 }" c! J4 e, \
. \- U( ~4 Y, y- V& [7 r#endif. [4 ~( m' R% E1 b% F# N% Q
6 o' d1 s8 ^+ D" j  ~
        ret = platform_device_register(&da850_evm_tl_leds_device);% S4 ?) b6 H  N. M
) j. G4 |* w/ r5 r
        if (ret)
+ Z" j; l; v  S$ H* ?7 R1 I
2 p0 |0 [$ O0 X4 n$ p! w) Q- ^! O                pr_warning("Could not register som GPIO expander LEDS");$ i" _' T1 {: k3 i9 J0 Z9 w' v

0 S. T& _; Q$ _. V8 g: r4 }        else
& o+ I  Z7 ]1 r1 X1 J: p3 B) i! Q
$ r1 l4 Y# f/ y1 H9 h' n/ j# T                printk(KERN_INFO "LED register sucessful!\n");
) R/ N% F- {. V! ?9 L/ H4 i  q) I) c' M1 m
2 ~0 k8 d0 c6 f
/ |. P. V8 D* n3 K: k5 Y+ N% G+ S
        return ret;
2 T, v. V- |% x7 W
) Q/ j8 C) M; s/ d}
8 v" ^# s- T6 O9 N
$ o* f. |' w/ d# P# h) U' Q* i
0 b* M8 T7 _+ i! r7 I0 p1 y9 ^
  p; M, |% y% P( L# n$ nstatic void __exit led_platform_exit(void)2 y8 s0 w/ D0 G  A3 E
( q. O* ?/ `3 _/ _8 u$ B
{% P' ?% ^6 Z" C5 F. q- a6 P

9 v3 n; N. I5 ~2 \        platform_device_unregister(&da850_evm_tl_leds_device);' R* n. T3 s& P' K8 G$ w

8 N$ U5 c8 C) I$ H- [
& j% N* |' |3 ~% b9 j( F0 a( ^* K& |
9 q# G4 B8 A- O        printk(KERN_INFO "LED unregister!\n");: m% v+ w9 k$ N* L) l7 D% ?! U

, R; W; t( c4 l" g* I) C. ?}
" {. A; H5 B* {. I3 ?
6 k' R6 b, p: ]6 P3 O& {  c3 ]: m
1 t2 x4 ~& g5 S  l
& n- [; g7 q4 s* \9 P! }* Bmodule_init(led_platform_init);
4 V$ R# n. `" J& o6 E
- L% G3 \2 U  K! M: i" \. Gmodule_exit(led_platform_exit);
9 Y' s$ u  }. `9 j
; q/ L$ [% V0 V; j! y4 ]* i% I9 k0 A# I' q4 L3 m' j

6 P5 @  h$ m! d0 `MODULE_DESCRIPTION("Led platform driver");) d' q$ a! ^! w; [6 ]) y0 D

3 g9 a" y/ Y! P  nMODULE_AUTHOR("Tronlong");& B* i4 P# O9 N* D; q% s

1 s. V$ g1 j" V- q3 XMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。% D; q  N" ~- s9 p

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:324 ?( C. e! k0 u$ `
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。: i( s% u- T/ R0 G) Z
...

' m) F& w; i( g/ N, |好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
/ N9 J5 I( O) x' K# F8 ?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, 2025-7-2 20:05 , Processed in 0.073800 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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