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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
; N6 S, O& c! U
- t* R! V" s/ J$ q请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
* r3 r+ L# m3 a: o  r7 k+ F4 P
# K) r0 y+ F# W% x' F之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
3 c( b# O, W1 \) [8 Z9 D0 w- F6 Y/ l/ |' x& y

本帖子中包含更多资源

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

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:149 @; z2 q* c" _1 T- K4 W2 `
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
; ?. q& t, [) M
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:7 `; J+ ]- t& x8 }
#include <linux/module.h>, E$ r8 u9 p% d* x

$ [/ L2 V. Y- Q( G! p#include <linux/kernel.h>  M* _6 |/ L% q$ X
5 R$ g0 S; ], Q3 M! g3 P
#include <linux/types.h>6 o' u( K& `1 I! k/ [. f: h. t  E
$ n" I# x5 I5 n" u" e9 j
#include <linux/gpio.h>
2 v8 L. x3 c' ^
6 f4 N' M% J2 m, Y) D; F#include <linux/leds.h>
0 E: |$ o! R$ s* |- P- p6 k, E) f' ^* |8 t) `3 \
#include <linux/platform_device.h>* P5 {0 U% ~" ~6 h
4 J9 C4 [7 g; a0 D; A2 y

* c0 B$ q4 l! ]3 \6 n1 J, b* K: b4 o' b, G* r: `8 m3 p; G
#include <asm/mach-types.h>
6 s& q+ m1 {  Z
1 C! l& N' r$ o( \5 B#include <asm/mach/arch.h>4 x- @. m, b/ f

( ]& N1 ?& S- _* K#include <mach/da8xx.h>
( R2 @5 w& f8 \/ R# W6 R6 U+ Y0 S! e2 w  {& `
#include <mach/mux.h>
: e# g/ S) c/ Y7 q  P
- J* v- l3 R: L9 x6 U9 L' p/ i0 ]- f1 f$ X; T+ g5 G

. [, u1 i- z1 I$ B3 |3 w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); J5 n  U6 k( u1 u3 W  A8 O
: ]5 @/ K! q, w9 E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 Y- U- S* c! J) G% U0 R$ X4 |6 L2 p1 H$ h" p- p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( z+ x: C2 K. }+ g
; \* h' r& a- |0 A9 j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' ?% Y( k: F* s$ `( B. D
6 }0 j, I4 I) A% Q  i/ Y0 _& ?
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
% C9 X4 h" O' y1 G: g$ ]) T* j2 C5 Z9 H% j3 t8 Z
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
0 ]+ {  h4 y  O' M$ W; a! M6 k  z) h4 f) e2 G# G; E* m
- p$ Z. e7 g3 {" z. D
7 n# X  ?) y0 i
/* assign the tl som board LED-GPIOs*/
8 x+ `+ V* \  ^4 d- t" ]$ e
! \  Z" {% Z3 {static const short da850_evm_tl_user_led_pins[] = {
1 z' c# D5 R2 y/ v3 X' J5 G+ p( F6 a) J6 o) K# Q% D6 f
        /* These pins are definition at <mach/mux.h> file */+ b7 n8 ~/ O9 \  B

, Q! N5 Y# \- q0 q2 t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
7 U5 o. |3 U. j) i5 f' z% i9 b: ]9 f- w! f. w. h, @: Y# y! c
        -1& Q, t4 o! k7 Y1 g
  B$ R( F% D* {; E! Q7 _
};
# h0 |1 U, b: Y9 E. \3 u& k* v4 x6 e* W& @  C- M

* Y2 J3 y6 {: C; d
) r) G$ U9 b" C- @4 Mstatic struct gpio_led da850_evm_tl_leds[] = {
- a# @/ c& D5 x1 B1 T: J% O4 u! Q0 ]2 R; @4 i4 B' {
        {$ `% ^+ S$ Q2 k" ^/ D8 B' J

, s3 `& g8 u+ @5 m6 B+ E. `                .active_low = 0,4 G% M* h5 D% r$ Z

2 x, J& ?0 F4 M- `) d                .gpio = DA850_USER_LED0,
7 j! q/ m3 G4 F: O4 Y8 I7 y: I; G( _
                .name = "user_led0",. H2 P9 H( v9 s5 _  M" W
0 ^; A! _* N& {" b7 o( ?( u% `
                .default_trigger = "default-on",
1 D" a' i# P" S7 r( K9 v& ]
( q1 w7 g4 ~. _% |6 e        },2 i4 K% |) x2 |% w! C. V
1 l2 c( Y- W# l  c. W! o* @0 i
        {
; B7 z8 B" f) r- s2 o4 N8 d" L$ A
                .active_low = 0,
8 ^  G- J+ g+ R! ]+ i/ A) e0 L7 ]% p4 ^* C. P: E
                .gpio = DA850_USER_LED1,8 m* j2 E% P$ }8 R% ~7 J+ m5 t3 c
  u+ |: Z; z$ @; I# b
                .name = "user_led1",& o" I4 U9 S5 V5 g4 f
/ W  E3 b, m; |3 ]
                .default_trigger = "default-on",! F1 K8 ?. a* h5 p# l1 O

1 D  x3 g% C9 |$ J& @- k' [        },) [2 l1 _9 L* N1 @0 k2 s
# p' C& X$ X1 t2 z2 C$ ~
        {/ y. W, C+ l7 C+ `" c0 l% ^/ S

, L) F2 l/ v$ [* ?; c                .active_low = 0,7 R3 y/ ~# z9 k  X& Y$ Z
9 X, h; t' s4 J4 X
                .gpio = DA850_USER_LED2,
% A5 y3 K# z* F% @- o# @' q
6 R% T4 K" ^0 q2 n3 D: V# E                .name = "user_led2",# l1 t. x" G5 g0 T' V3 N7 p
" r! ^! [3 m4 v: E6 h  K
                .default_trigger = "default-on",, p8 _3 b( y8 _) e! N- R
5 |' B# o4 X, v, o9 m
        },
, w7 p$ ?* H" i6 r6 N0 {( |* [' s) e" |; U# ?" @0 {' s/ [
        {& x, T3 B0 N: k' n: c+ |+ |1 B$ q

" j9 C" r2 `6 R8 X' o                .active_low = 0,5 e1 d- D: o) P( C+ X0 i
, R8 R! ?, A9 f
                .gpio = DA850_USER_LED3,
! @) [$ M# L' \$ o4 f5 T& k/ r# H0 |1 j& M: V9 n* J+ s4 S/ @
                .name = "user_led3",' ]7 T$ j# B$ D" ~
+ h6 M, H# S% j5 ?. y( M' ]$ A' ~
                .default_trigger = "default-on",
. B! v9 W% }4 L; Z4 \
) U6 V% j7 I# y        },( F& Z% `, N6 W( D1 V

) P, o2 c7 q( N/ M# }( }: u+ C        {8 y1 p, J% V6 e8 M: D' D

$ h) G) `6 I1 u3 [! H                .active_low = 0,
  {/ z/ X) o) d6 l/ ]
5 P( y* ~- B; d' ?                .gpio = DA850_USER_LED4,
; h* B/ J+ A4 {2 n8 {3 l
" |. _* p8 E7 }7 U                .name = "user_led4",
) ^* E: v. ^( o2 b. f) i; K7 J
                .default_trigger = "default-on",
' ^+ R% x- w1 `- j- g  n# G4 }5 G. B5 U& |* p6 X
        },( N$ C! D- K$ ~  i! f9 ]" o! T3 C

) h. S3 \! U0 k  U# n' P        {
/ v4 y1 C1 r. T* i4 z2 J* r6 Q( k
5 c% D' S* t" l; V( d; q9 @                .active_low = 0,, N0 M% |' f3 P

5 k8 B6 |4 ?2 e1 }+ B$ l4 j                .gpio = DA850_USER_LED5,
/ y  A( H% V& n! w% j
8 H0 M. B0 t. c6 w# r# o* C                .name = "user_led5",! j- s( d2 z* ^5 i: H, S' v

: B* b$ ?0 a3 Y/ \; v                .default_trigger = "default-on",; Y# e  }( O( }5 w% O

2 s+ ]; T& X* P1 X9 U- n3 w        },( b$ P9 @- ?  f7 V3 s

) Z$ r8 _4 o. Z- @8 S7 s};
; S: ?6 [% K/ K+ W4 K4 o+ S! R. v4 X3 R2 t. ]" J9 n

! G0 {7 D( n* V, @( H
3 S8 _, e) ~0 C) p) ~+ K# \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( F/ v# x6 t" @1 |
5 S( L( ^8 _6 U
        .leds = da850_evm_tl_leds,
& L% J$ g$ X. H
- i- C$ V- _" [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% W$ W# o, `5 {1 k* J! C

) y$ ^  p% p" [* y' y. b};
: \+ |6 S% E1 _$ h+ N* D
/ O0 f% e: ?/ H0 H' a% S4 |/ N' a% o$ ~

0 M. T2 R3 D0 @# O9 estatic void led_dev_release(struct device *dev)6 o$ A+ K8 m' N2 J1 e
2 o2 @! M2 F$ _: d7 u6 _9 A
{
, P) I; l* p% ]- L8 q
4 D4 k  R  L- g* ^' d" n};
5 [. H3 c. x- i6 n% P
! Y& }+ G9 t; |1 O
& {. n7 U% a" N" |; m: U- T' K2 C$ H  X. W5 O' n7 a1 p
static struct platform_device da850_evm_tl_leds_device = {
  V$ o" U- |2 Y: ?- t- Z' E
9 P( g, u6 K/ F8 I7 Y/ r        .name                = "leds-gpio",
1 Y4 \6 r9 U3 {; Q4 H% X- |. e
/ O' N/ \  J: C, n) w, G% M        .id                = 1,, Q  m0 T7 k+ S5 t2 M+ r* v! \5 v
5 Z% t* {, T$ o; v8 b. Q1 N
        .dev = {
) q; J7 P( j) B7 c) l& K8 f+ T  f+ t. _$ M
                .platform_data = &da850_evm_tl_leds_pdata,
( O& ]( v$ d. A( Z0 M0 S4 I8 j0 ^1 B$ @; M" n5 J
                .release = led_dev_release,! V% O  x' |! x$ Q1 e* m' _

) N( F/ ^4 e0 y4 ~( _, H        }+ d, h9 T$ f/ N$ V' X  D4 t

5 f' I% Y( O! h2 J% i};* Q. \6 _9 N6 o6 e
0 q) n! z! g% `+ W# U( V7 I  Z
6 o% g3 j6 X3 H
  ~% W9 u4 Z0 G! _' ]: g% D
static int __init led_platform_init(void)
! N. S5 ]0 S' i7 v
. }2 B% b2 l, N* u4 Z3 k{- h+ ^) t" X' B% n

7 @: a$ k6 ?% L' v9 q. Q0 J        int ret;
, C' J$ R5 R6 m# w' f
/ [5 p4 _1 l7 _5 R& n1 Q5 J#if 0
7 S2 b. |) g2 _! l, c5 {' J5 }  \8 n% c. |. H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: L& ~. M9 T8 v8 Z* `) _) d1 a! s! d$ u- D" ?$ M+ F0 g
        if (ret)2 Z( [7 y. O2 r9 X/ o
1 Q1 ^, {' F4 I2 @7 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 M% R) L* i+ ^2 ^1 Q6 G
$ w  d* @/ u+ B7 q) g; E) i* r                                "%d\n", ret);
7 W  W/ _9 x4 T/ ~; W. }: S" R7 [- g6 [8 H& q' _' d; d
#endif
7 P9 r- ^3 g/ M) Z0 Z3 m+ f8 F  K" d# v
        ret = platform_device_register(&da850_evm_tl_leds_device);+ Y: Z. T# n* f9 q, c7 E
* x$ _2 G8 _8 c( q6 @2 E
        if (ret)
) u. c) F5 W6 ^0 m; N) Z) W# H1 c) K* C/ K; Y
                pr_warning("Could not register som GPIO expander LEDS");
8 V/ R' J6 f- k& J  |5 k
9 S: G+ s+ H& T        else
. Y2 F$ V7 C! m) U, Z$ B
9 U% H3 a! @6 M, ]. Q4 @' r4 C, I                printk(KERN_INFO "LED register sucessful!\n");
6 l/ r; u: D; m* {* _* D- w6 q$ W
! M# w$ ^9 c) ~( l" C: {* ~
5 P% c& j2 E2 l9 d0 i' @* |# z
        return ret;( M) p, L6 N4 U3 u2 f" r
6 `2 c) O1 ]0 `1 M, [! h0 d
}8 ^1 p1 T" G5 A( v2 _

0 V7 p" Y, L. T! m3 B" {: |' n# T( s* L* O) n' ~

/ H1 G$ K" |$ f  Jstatic void __exit led_platform_exit(void)
- G' R9 m8 q8 Q+ z$ j0 S
" U) J+ j9 j7 G2 Y7 h. p% Y{
8 C0 ?+ s+ u0 D4 o; [. ~* c$ q
$ b" G: [6 B4 a. C& d8 G# W        platform_device_unregister(&da850_evm_tl_leds_device);
8 U; W7 d2 ^# L
3 H7 o9 r. P& ~" d) B- Q: i; @5 b4 I) K/ R9 Y
) i7 M% Y$ G* U2 L3 c
        printk(KERN_INFO "LED unregister!\n");
4 i1 D. O# n/ E3 }/ U6 @
. @" |' Q- X) Z6 ]& M6 d( K}
$ X$ y# P/ j2 R; M, u/ E$ |; R7 Z4 Z; P5 }8 H7 L

* T( N  I* m: O8 k0 [( y4 l7 O6 e; ^/ y9 o+ g$ l
module_init(led_platform_init);
7 b% U; M! E/ q
) s8 o2 ]' d9 t6 `7 K$ v" hmodule_exit(led_platform_exit);1 O5 U2 _1 v: V9 n8 e/ v

, K, d2 I0 c5 ]5 U
: o6 d2 I+ Z( o/ O
. Z1 P$ M4 r# ?3 @; I$ k$ bMODULE_DESCRIPTION("Led platform driver");) I) x7 T9 u1 L: B& K
5 ?; |$ q5 P- c  O
MODULE_AUTHOR("Tronlong");
' k1 l' g5 B4 s4 O& E
* Y, v; F4 ^9 ?3 F7 F5 D; }, nMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
6 _+ m9 u+ E& u7 P7 C

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
# _. w' ?5 p7 g您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。: g  S1 q5 w8 }
...
9 f. Y) w) x7 l5 H- Z8 P6 ?- }
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。9 N, G1 r7 m8 ^$ c/ g7 B3 R
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-11-16 21:44 , Processed in 0.062582 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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