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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
6 u  \; g2 e5 W( a( L" _1 [
' Q6 W5 w# J7 [5 O1 j( C" {请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
! j: Y3 }6 x  N6 N2 y- w9 H3 ~$ d- l8 i- n8 C
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?- ^/ p6 R0 O- z# F: Z9 D/ i) F1 i

( F6 X5 U4 L) p

本帖子中包含更多资源

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

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) M4 {2 C0 f2 T8 {+ z
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

) R. {! a1 v7 g3 d我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:8 u* V. O* n9 s0 m# {+ r
#include <linux/module.h>* r7 N2 w+ U, ]) m5 X
  t" W) p+ m( N7 P5 ]" }0 ?8 W
#include <linux/kernel.h>+ F; N) O* ]4 Y% Y/ v
2 o8 ^( y0 j1 m5 W
#include <linux/types.h>: V8 }# ^' i4 @# i, m! D" i+ i
1 s8 u* j8 u- ]6 b* R( ~# x
#include <linux/gpio.h>
8 w8 K8 n7 r" w5 g2 q6 Q; ], D4 D2 o6 m1 P0 A* ]0 V
#include <linux/leds.h>
  Z6 ^# A7 L4 v& L# b
2 H5 n4 u& z9 s* v1 n#include <linux/platform_device.h>/ E' S( h: X( {) {( X$ J* M
' f- m( {  u3 I8 y
) P6 _" m* _: Z! a: W

  i* e  @' f9 E#include <asm/mach-types.h>
/ d# J( N7 P. V, a
% L6 m! E, b$ C#include <asm/mach/arch.h>
  H5 g/ S9 K( T7 h7 s" d  Z1 ^' P: Y! v* X
#include <mach/da8xx.h>
" m1 B% T& \5 [, v3 d5 e$ Y6 S7 J% ^& n+ n* U& O# n
#include <mach/mux.h>
" k2 N( P; i$ [4 h) A: G! ^  B* c: Z* ~
+ ^" p# w7 ~5 \; o/ ]' M$ ~* M0 Q
7 T/ W7 P! U& I7 C  ]+ }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 X$ Q8 ?& A) |& m) C( g/ z' k1 P3 `. {+ c' ^1 ^  M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 q" y; w0 I+ I7 D8 z
8 m! ?/ d+ ]) Z& x8 v" e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): L# u+ d5 y3 M; o4 y8 a

- m1 \0 z; m% p6 g. ~6 N8 l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), j) J. W' [) J5 y: t$ F
5 D) e0 Z. F1 ~0 @# N! K6 Q* Q
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
" w9 i$ y+ f2 _% ]
1 X4 e6 g( D$ h6 w2 @/ v( c: b#define DA850_USER_LED5 GPIO_TO_PIN(6,13)7 G5 ?3 t# V0 W$ z( g+ L- N

* b! X+ b6 ]$ L6 {* W) W/ j; a. t2 ~$ z6 u) z
8 L0 ]: F% E5 D3 S$ g5 X4 g
/* assign the tl som board LED-GPIOs*/2 A/ O0 E; l* U0 @" s* _9 g
% Y1 c" ^. D% N
static const short da850_evm_tl_user_led_pins[] = {9 `6 {& C, k& o% V( a! \3 ^
9 G* h/ I; t$ R$ Z  q; v
        /* These pins are definition at <mach/mux.h> file */1 v, t: S7 A, F! J, U1 E

8 Z2 y( U: m+ k2 }5 n! D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
! J. b9 n% y& t& }5 I8 X6 F, _
7 h1 n1 H. _% z! b$ U        -1
4 m3 a2 |0 L) u% m, X% h# Q3 L" _' t9 j" \% Z; n$ q
};
: h, D1 c$ u, v4 X7 o
8 p, @5 {; h4 M& H( f5 V* J! {1 O$ a/ c* [: G. F: }, C) e

0 f( {& P5 z5 ~, bstatic struct gpio_led da850_evm_tl_leds[] = {. Y: E$ Q# L) X2 h

6 b+ L0 Z, S& z% U! U: h        {# C6 l- f0 L& i0 j: C. b: Q8 n

! I& P2 y- P9 F3 L                .active_low = 0,/ c$ J/ P: @, i+ j
4 J% @4 F! f! o4 y8 x! m' l
                .gpio = DA850_USER_LED0,9 {. q2 t* h; z: g) R6 Y: G

# l$ \+ C: J6 u/ {7 F. ?+ B                .name = "user_led0"," z: `1 w& l% r
% K" m/ z; m# h( R
                .default_trigger = "default-on",4 b+ |8 q! y; y" _
1 |$ n3 J' G, u/ ~, W7 p0 ^: A
        },
3 o% [$ r( j3 J8 ]( _4 I
4 J) J8 `; m) j, ]5 F        {! Q4 }& G$ a. ]& |8 E+ |; A

# L1 ?$ s* T: ^+ Y& w                .active_low = 0,9 r3 o$ o" M) Q9 F: W$ {

" E) i5 }# U1 y6 {                .gpio = DA850_USER_LED1,0 l, L2 b2 Z6 V! p
  c0 M) e( H0 A+ `. Q3 B
                .name = "user_led1",
' X7 |+ m+ h3 s& E" G/ e* f8 W6 O: _  i* [0 m( ?( V: I6 T
                .default_trigger = "default-on",
' l2 q2 p/ `3 Y" P0 r: Z. s1 ~2 D! Y$ b7 o
        },
9 `, v* g& |' m/ k
+ Z$ s2 p8 \' d* k' p        {
: G4 `8 f) f* k" x
$ L# E# F7 ~$ d  V. L  O9 ]% B; O                .active_low = 0,, [% E9 w, Y2 n4 Z

4 z9 O; D5 x4 {. c" l2 o9 d                .gpio = DA850_USER_LED2,
2 t2 E4 g" a9 X/ U; a4 m3 `1 K  Q6 c2 v* i+ T# r: G' O1 ^+ j
                .name = "user_led2",
+ |, R7 E$ E& G$ U1 R7 h3 h5 I3 w& n  U- e1 f9 g
                .default_trigger = "default-on",
- A% V2 U& Q$ ^
" L' R3 n% f! n3 k        },
0 c" s: e2 A* i1 }+ `1 n/ _3 e1 j4 m: `6 H$ O' e, P. r
        {9 ~$ S: r7 `. O9 k/ D' j

9 `& n- G8 Q5 r, L, G3 \                .active_low = 0,# o, A* {3 x/ N; u9 L, g

# K" k1 e8 q" y) @                .gpio = DA850_USER_LED3,
) Y" l! a" ]2 D1 P7 m( n
' ~4 z* _7 J4 L( s; S$ e                .name = "user_led3",0 l9 ?1 }  j7 ^, i# f

& N% v8 C+ g5 ]  |6 A# ?; C                .default_trigger = "default-on",
8 m7 ?" i2 _; O+ v. u; X5 x% I# E/ L
        },/ {2 C- W3 k5 Y" C8 ^2 j
( h5 j" F* o; T7 i
        {3 L8 Z2 D9 T- Z% f0 B; F' N5 k

( X9 L6 M5 n0 a, U, {" n5 w! f                .active_low = 0,+ s* e+ I! f; ^# m. A0 H
- ^9 d, y2 o/ n- R$ {0 f
                .gpio = DA850_USER_LED4,( x+ l) C. o# \/ a8 Y- j/ d+ G

, T+ V7 x. H+ m) k/ G) @                .name = "user_led4",9 |% l" v4 W( ^" r) t  h8 g; S9 i
5 c- ?5 u9 _# F% G
                .default_trigger = "default-on",8 g, \6 v7 r/ R8 W

' E8 m  z% z* z/ A0 {: J9 k* ]        },
5 N9 e  p9 ?9 g0 {3 h4 B9 Z* g: s
& d# x% H* Y9 _1 }2 V6 K* k, _) v        {
3 W) |% A5 c* ^1 a8 ?
5 X) h2 ~3 g4 ~' C, V* J                .active_low = 0,
2 N4 ^$ G0 k9 [5 ~- a1 \; K
6 ~% D$ ], G# b9 @3 [3 Z8 {$ A                .gpio = DA850_USER_LED5,
3 ]* i5 a) W4 M9 v9 H0 ~/ m" P2 Q" ?1 j; F, P$ k$ W6 @1 N
                .name = "user_led5",
7 w. j, Z1 {6 H4 g2 F/ o6 p% D
' f9 j$ V$ f1 M  i3 }) Q                .default_trigger = "default-on",1 F3 I0 N4 z' {% y5 \
" t$ C1 @3 ?* J1 s: M+ e
        },
6 |3 k1 b, \& Z- {, q- N) U& w7 a. h5 M1 N- P1 `5 H, m
};7 }3 |& M9 P0 r  B6 Q) C

+ p( Z, y9 t7 Z. U6 W" t/ I- g1 L* f- e4 s% r3 o1 w# Y6 Z

; @. v# ?1 _7 j+ Z2 c; tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 I4 w4 z0 o* r

* ^( d" B2 U5 g        .leds = da850_evm_tl_leds,
2 @3 ]6 ]" [: K, F4 @1 ]& D) A- }+ S$ t" E5 n) r
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: D) ~. |8 B7 H( W' e$ y, q; ?
" J' V7 I8 L2 ^: m};+ ~( w8 `9 X' `+ q+ E
0 v. v8 y: S( n% p6 o
( S$ s. I* A5 i( x' N
" z# }; Y3 \5 y8 m) O# a
static void led_dev_release(struct device *dev)( a  Y6 L4 C; x( @3 |: l* D

/ F0 W! e0 i: k1 F% t{
7 U3 o7 P+ f4 Q3 p6 W$ q. m* n  F% {! G" E
};
! N  ?# ^- S0 x9 c& A: {/ R
) x& O' v; G( y" ]. J; y
# K' h4 p. W( ?5 B
, U  K2 L; H5 @* N" k6 U! v9 W5 N5 xstatic struct platform_device da850_evm_tl_leds_device = {. a$ V; R" \( \3 |$ h4 m- l

1 B# f  I$ n. G0 |5 U' e( T        .name                = "leds-gpio",4 j8 v# ^' B5 C4 H7 s
- r' A/ C( S4 Q
        .id                = 1,
5 B3 E! r1 U. P" L3 f; X9 P3 a  B5 ?9 X4 ^1 n$ k- w% c6 h9 V
        .dev = {
! p- v! `# |# `: {
2 }! Y* U" q: ?$ ?% G                .platform_data = &da850_evm_tl_leds_pdata,
! K: g$ V; N/ T6 P  n3 {% Q* }  T! O! X; O- b, J" @0 L
                .release = led_dev_release,
# U3 D- D$ ^7 R% w5 `3 y" T
1 }8 b3 ~$ m1 ~' b7 ^& z        }
0 M( o! J& |- Z5 T9 {8 L7 t8 K4 ^# q9 J0 b8 d
};
4 v/ A* G" C. Z  J4 ^
. g6 n4 p* W2 [/ ?! y! {) m5 C  L( Y' y; d- g

. d0 e- T. j, f# S& J8 A1 }5 l5 bstatic int __init led_platform_init(void)
. ^1 x$ g3 H" x  t+ e# H, t+ R5 H( k3 \' I% c% i7 l
{) A5 ~% f1 B/ o/ f( L
+ Q  R% V+ S' ]* ^2 Q6 W9 Y; Y0 X
        int ret;4 v' K, {! i, s, k6 `
  S7 I& w$ l  r% C! A. S+ k
#if 0
4 u7 s& I2 y8 |# j5 _% _+ B* {
, Y! y" m8 f+ C% t+ y; Y7 F2 r! y: M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 M9 A5 R0 }$ Q( u9 R
& i8 [9 R+ b4 w4 |4 |' K# N        if (ret)2 w  O/ t' Q/ {+ c

8 ~1 r6 f. I7 W1 c5 z: e" |- B1 p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": K/ E0 m% G6 P0 r% F& o

! ]. q, R1 I. V  E, Y  |                                "%d\n", ret);. s- s5 c, M4 K5 A

: O6 I' g# x/ [: I+ L, u#endif' U- o2 `: ~$ _: M9 n! e4 B

7 v7 p2 c% P$ N( N) A( K8 h5 l        ret = platform_device_register(&da850_evm_tl_leds_device);. q5 j' ]3 ?( B& E! J# a

5 g9 U( H. |) h  h& [9 ^        if (ret)
" N6 o* |5 p% ?7 u- ]6 M3 c6 e1 _  h: @( ?) t, @8 d
                pr_warning("Could not register som GPIO expander LEDS");
9 M0 Z& r1 i( C2 W, ?+ F
: Y( M4 A! l; \        else! S# H1 T, n: t, x
- V% R  c* O% i9 p% e
                printk(KERN_INFO "LED register sucessful!\n");: `7 U/ J+ U) Q* L2 b* d5 Z& \

& U4 r6 u$ u+ a3 S8 \8 v: Y
& S7 q" ?( s* W  t3 ]$ R$ @5 L! h" Q: X) T+ g' ~9 m/ y
        return ret;
2 a4 r& H$ G0 }3 Q9 |5 g' t* P, S# w! ]0 v, d# H
}
5 h7 f5 E! }; l  `& p) H
0 k5 P$ Y8 C! q1 P9 v
2 T8 ?/ A6 K/ @2 i, M
- a$ K5 Z$ t! M$ |static void __exit led_platform_exit(void)
& z/ p' O" U3 W4 d; `
" _% H! [4 z+ u2 Q2 u: z- ?{
( {; N; s6 V; r2 a4 Y4 p
0 V/ L6 W* C3 F        platform_device_unregister(&da850_evm_tl_leds_device);
* ^' _0 M' B  }7 w; t: r4 Z  S1 _( r

$ D% V# r) u' F4 D9 q6 W' f* T* X6 h1 F, y
        printk(KERN_INFO "LED unregister!\n");
8 v0 W: U1 p& k" a# a
; b, Z! o4 s5 Z/ ?6 Y}
, G* q$ l4 r. ~& H5 Q9 N0 @. M
2 C+ k% o9 r4 ~0 x# k8 U( {& C
5 \* r+ u( X. u# X# F. S* R% I. |' O" M% a4 }
module_init(led_platform_init);' O) {6 M3 W  S" t, ^' M
4 g. j8 x& K- j9 w1 x
module_exit(led_platform_exit);
$ y( @( W  c7 y" P0 ~0 e
' [. Q' V7 Y1 }6 i5 W
/ ]" J; v# v: C* M& g6 n
7 e- c" m6 W' z2 W( Z+ F$ }MODULE_DESCRIPTION("Led platform driver");5 O9 I" n  l0 d  O6 N4 B" v

) X+ K  ]9 z; j0 G( OMODULE_AUTHOR("Tronlong");8 F9 k' g1 R/ _- P4 i9 ~

9 L* \+ [% U5 N  H, \MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
; ~) O/ U8 O4 g5 Q5 u

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
: a* N4 ]  a1 ~您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
# i2 i6 U3 N4 s; l. Q. w ...
  T9 F0 O. y: A
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。3 Y& z, r/ N& d& l' o
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-6-14 19:04 , Processed in 0.053770 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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