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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 , }# r  j; f$ I5 n+ w  A5 y; I
9 O( u6 J! I+ @5 K4 ]
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的' Y& {8 v2 ]4 K

! m) G1 ]6 g' ^. b# p之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?: I2 v- Q, ?3 ?/ @# H! s( \" U
2 Q( }1 K; J: Z" i4 d

本帖子中包含更多资源

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

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; F5 m: X+ l. H( E
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
5 _$ y# Z% j! X% s( b
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:. b& i& }; k  b  |
#include <linux/module.h>
0 O0 e9 `3 }. S$ o7 W! n
9 _, v* ?2 p& B& i#include <linux/kernel.h>6 s; r+ {1 |. S' H+ m

7 d$ d6 C- q( m( x" g* D#include <linux/types.h>
2 _) b+ \) }& D2 r! x. e7 H# L- U( l# F9 {4 {# d
#include <linux/gpio.h>1 X* W5 t) b* e% B

/ d7 G. I. a% m% [6 I; E#include <linux/leds.h>4 s2 E) G$ h6 K- o2 D. S7 e

2 ]) R% L) L: M1 B#include <linux/platform_device.h>
7 o0 Q/ n( }2 q+ ~# A% w8 P
1 z' J2 s9 B$ m. ~" V) p8 F. k3 ^8 h

1 t3 ]9 Q8 F% B9 h6 V#include <asm/mach-types.h>) ?, @) Q- Q) H2 }3 E2 I8 x: i

5 N7 d2 z9 M4 X" I8 `6 F/ x3 q#include <asm/mach/arch.h>
1 _6 a. v; s; l: A; H1 k% g4 P( Q0 [! q8 `7 c8 K
#include <mach/da8xx.h>
8 Z) i# C* o" c9 \; Z1 j
$ `, h% u! i& q  V! p/ T#include <mach/mux.h>
" S8 G2 p( M* F1 P& d7 C6 _/ w6 ?; T+ n; t

1 w; \; V# r6 ~' p
5 @, [! \; p8 L9 R* N! s/ G. Z' g4 F, ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! z1 I( P9 |) g0 H
( |4 B2 W$ N. f. c: @: B1 F5 `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 t4 e8 y! H# M/ E* y9 P6 z5 y. z7 c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ q' p0 O+ q& g) {2 G1 m
- W4 x# q) O  w- |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 O( e% L+ o/ O7 c0 u# o  H6 l8 b# z5 g1 G0 W
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
+ t% S$ g) N5 P( a9 S
6 B1 J# h$ i6 Q' T#define DA850_USER_LED5 GPIO_TO_PIN(6,13), g% b& z; t, H! d' d/ E

# D" i0 D0 h* P9 f  D
8 [3 t6 G8 l+ e& K0 V5 T% q  r; r2 Z# u2 O4 r
/* assign the tl som board LED-GPIOs*/
/ ^) s) ^; w, @  R+ K: m9 s7 i5 x! [$ I
static const short da850_evm_tl_user_led_pins[] = {
6 {% Z- U7 M' D5 u( J6 a
6 w' f3 \3 ^0 W8 N        /* These pins are definition at <mach/mux.h> file */
/ X! D; Z( L4 u" P
6 l/ f7 X5 k( U2 r5 @' k! ?& f& B0 y. r        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,& {4 w( h' s+ F  f2 R

( u, G. V# |) g6 x        -1
* A) g1 P9 M+ L
7 Q$ p2 t. X( o$ n5 a9 b* D};6 I! i+ Y6 Y7 X, b: t; {# D

- @3 m* y- ]- }/ N  l$ l3 i) \) V& o7 _5 U* @. j' M
$ G+ F9 z4 ^4 G+ J* I+ k
static struct gpio_led da850_evm_tl_leds[] = {
9 n# p* y3 O3 G. V1 S; ?: R8 d) a; _4 S, |% J
        {
9 D$ H! a# _3 b
) r4 z" q6 u0 B: i( Z                .active_low = 0,/ _# x! Z; w4 O1 M( D
9 j  M: @+ S/ ^2 {" x( M3 V7 x
                .gpio = DA850_USER_LED0,
$ w# g# ~! T' `9 s7 J5 S6 i$ q* `: e8 ^) z. v
                .name = "user_led0",: b" q, Q3 `, F: w( h
/ I4 z2 H2 G4 r! O2 R4 x$ R
                .default_trigger = "default-on",
* c9 w. Z- B1 ]+ }1 }
- z0 G# b' }6 f6 @" p        },
& j  N* h+ D; r' p9 a; Y- Z
& a& Z$ _( C$ }        {- a  C+ g& z& O" F& u
( y9 J* |3 Z$ Q6 ~* A/ _
                .active_low = 0,( v7 N7 v3 h' }$ Y1 ^1 i0 t$ Q% l

# ^4 j3 g  ]9 ]                .gpio = DA850_USER_LED1,
1 f" o& W9 i5 x9 w5 I' d8 x. F; H2 z, Z" K4 C
                .name = "user_led1",
+ ], a' I$ Y- e( Y8 F7 l9 L( r
                .default_trigger = "default-on",
& i6 l$ h& E: ^6 |* Y5 X
$ M8 u, {% x! s. i* Z9 K0 A0 s        },
% W; H- j, j/ M4 X# u
4 H! G. Y) q* r3 Q        {
8 F; b7 s% S2 u7 n* p$ Q/ u6 U% ?5 B; Q- r8 _, n% W0 C+ Z3 J  W5 P
                .active_low = 0,
' S' `% P2 \2 Q  e3 s9 [
1 n1 T, A" r( x7 @                .gpio = DA850_USER_LED2,( p% w- ~4 K4 t- e

% E: j; K' ~' G9 m! J                .name = "user_led2",, A) z3 q8 M7 k8 |/ _+ z6 }3 V, U
" R+ U5 u/ u5 ^7 R! L8 v
                .default_trigger = "default-on",( N4 p/ K% f6 i! m) R2 H: m9 x/ e
' w! e8 H" C5 k
        },: v* I, i3 S+ A0 k0 y
# ~9 \( \% C* l% r9 K* U
        {8 N, x$ F1 i) a) p1 f9 @

- i! O9 n" q# ?! u% N                .active_low = 0,4 e% M. X7 u4 E

$ d7 m8 ]6 }1 W' _" G  D                .gpio = DA850_USER_LED3,
1 y: k4 w4 }6 z# a! `/ ?; H+ e4 O) T: O( d& o1 g: c
                .name = "user_led3",/ I$ N9 K" M0 ^+ i
$ b8 _' d# U4 n/ F& N3 f* |' g
                .default_trigger = "default-on",
+ z4 x. ]6 a* U3 p( f- M& [# @% _$ }- h; n! c
        },
( i4 ^0 b3 E0 O- C4 l  U# X5 M
/ e6 K1 E) P, o- v/ N  r$ u- D- x        {
6 y$ U# ^) k, b% n5 Y: |# T; z: H' \% @( F% ^
                .active_low = 0,, `$ k8 o! t) B. k9 C9 p
% l/ R/ S6 {$ T2 H  ~; S% |
                .gpio = DA850_USER_LED4,
- m+ X; _1 L1 w4 X2 x  v( ?
& \+ G/ o4 A0 C; ^; C8 Y" b, J                .name = "user_led4",6 a) E8 |4 z5 v3 t
* V& ]- i! R9 {, V! H
                .default_trigger = "default-on",
3 o+ O6 C' K9 w/ Y- \
% n/ t' r- f" v! T        },0 o. y" |; v6 G
4 b' V1 P8 v  r$ y' s, t  L0 W- s2 B
        {
) u$ }+ G/ }5 ]3 T; f3 L/ ?- i' q) b' O- D( M
                .active_low = 0,
' f. u4 j) j# Y2 s
3 Y4 d0 U3 E6 `7 b. M6 V2 s1 V  w                .gpio = DA850_USER_LED5,
" ?' H# P- {3 Z4 ^7 C" X" E/ s5 }- e" B
                .name = "user_led5",
7 O$ M2 u3 R5 u$ r! r8 Q- p5 M1 E+ C/ j: U
9 X$ W# i) i5 e& Q3 k+ a0 ^                .default_trigger = "default-on",
* w5 [) s; N6 u, E
: l* A/ T7 G7 F( s  `        },
% \" x  d( D  U# H# y/ e; _  O' X
};4 J- h8 l+ l( i, i( F0 ?/ j
" `8 Y3 c3 e3 _$ A2 N3 A  b# }
, k! \& W' d! T( ~0 @# [

- L  P# G5 n% j! sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 N; M2 V5 [  N/ t5 F/ e
7 P" V( g+ U6 ~/ c3 U  n6 ^" Q
        .leds = da850_evm_tl_leds,
( P" I7 m- t4 F2 Z9 r  A
+ V. G. D8 }' u- w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) R/ ]% N* L* m: m3 ^: C+ ~' x" q$ o1 s  @0 g+ d3 l
};# t8 C) Q3 }0 Y; j! |- P# |: _
" ]8 d6 x% n" G/ U
* m# d$ z- F, p8 Y& [" U
: j* r% ~2 [0 P2 J
static void led_dev_release(struct device *dev)/ r5 `* m8 \' j2 u( D

1 g( T5 r# h  ?( H- m5 C% ^! g# i{
3 P3 d- [; @: m+ d, i" b+ H
9 ]$ C, ]  I# K6 K$ o};
+ N9 \  l8 q* W1 _' }: [9 O- ?7 V0 |' v6 j- a. ~! a! @6 D" Y9 ^' b
+ w, @% }' e# i! G
7 A5 K. u! b5 C6 Y9 g; R
static struct platform_device da850_evm_tl_leds_device = {. R/ k, r6 U# }: O

8 C: J3 d; I) n* ^" E        .name                = "leds-gpio",
* p6 z. O" y6 l# G. n, f
4 f( i" k- Q$ g' R- |9 v        .id                = 1,
% N8 A1 V; g9 v3 U1 j' y0 ]; f( F! N; }7 W5 v1 W# \) {
        .dev = {1 S. g( v- x2 b; a; h
8 S  g: t# `9 u) Y& t. @
                .platform_data = &da850_evm_tl_leds_pdata,
' F/ R: J3 C( ]% B# |' j. j- R4 q+ Q) h/ L1 ?: ]7 m8 {/ D
                .release = led_dev_release,* H6 t( X8 I9 L7 m7 Y

& }( ~) @' b# s% C. U. p        }
- g4 l/ J* d8 G& i* U  m6 {: j
* P! |& j% {0 v7 p0 m2 o) y};4 I9 U0 F8 Q+ @' n& b) K

2 y5 c7 N* X9 P+ `0 @
7 G5 J: l+ W* n) r( M  X  ?
$ m5 p# i/ `2 T( F, mstatic int __init led_platform_init(void)
% T6 D- p! |  |0 G
5 V5 _& q; `# _, _( N0 |0 ?& w{( U- q' {8 d. r( ~

* n+ I+ G( x3 Z& T) ]8 j/ n        int ret;3 \, f7 @/ d& e% }  Y* ]

4 z$ D/ l) [/ Q: q+ I( p5 c# ]#if 0  c8 P2 M3 ^' l1 A+ h' J
5 `8 T7 d* i0 F+ l# \  d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 P  J5 q$ }: @: i

% l' T! N9 R9 t& e        if (ret)
6 V8 j6 E, q$ a, e; p
9 o4 y/ z4 Q# U3 Z" f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) r6 V2 z7 n1 `" G+ _+ F
/ y* @3 j' s8 T* O# a9 X  `                                "%d\n", ret);: @1 r4 S0 J; |9 C% X5 e4 Y
, s+ J3 @- n& z5 N9 D
#endif$ x/ U0 v7 x% B" n( M) r: R

; q$ E1 w+ V9 K        ret = platform_device_register(&da850_evm_tl_leds_device);
" x8 m& r! K2 g# k% N. c$ b/ q  w- [# S# X6 c+ Y7 |4 r9 S% j
        if (ret)
3 J5 ?$ h, R% m* o" k
) N* l9 p/ v! c                pr_warning("Could not register som GPIO expander LEDS");1 l$ b- ?; b: f/ Y' a/ m- x
& X0 W6 N0 v  i$ g% S: _
        else: j, V/ y8 ]$ G

8 [6 _: ]$ o: p# G: Y0 y                printk(KERN_INFO "LED register sucessful!\n");
; G  r9 v8 o9 g7 m4 Y. x" T
  _9 {2 j' f3 U; ~; e+ r, H# q. Y0 L! @0 {  T$ u

% G( ]0 Q7 s1 ]: \, e0 a8 @! K+ O        return ret;8 z" V7 X+ O" B
0 m; h4 u- N) e. M
}
7 x+ ^3 k3 x. q  G
4 R  ]" N' O8 G( C9 H! E! W3 d) L3 f- s  b) X, N) a
2 j7 {/ G% E+ _- X2 Y
static void __exit led_platform_exit(void)
* y* o: e" D- C" S0 l" \' G% D1 T6 E) ^
{
( E9 A0 ^& }1 q# K& n4 f; Z& d6 n9 J8 ?# s6 i( ]! z2 G
        platform_device_unregister(&da850_evm_tl_leds_device);
* G. w3 n' ]* X& {5 w0 o3 _2 y4 ]; R& p7 M

% g' }; x3 |! I
: R3 o+ ?$ S' V5 \7 F: Z: i        printk(KERN_INFO "LED unregister!\n");
: h- u7 [. G: e1 k* m" U: e% O3 d% E8 Z+ k
}7 @2 a. l6 C; X  `; j1 w2 X4 ]& B3 t

9 f0 }3 D7 E: Q5 y" \* L* e) C# t& ]9 K0 a; O2 v
; v% k3 |8 S+ c6 s3 S
module_init(led_platform_init);8 V  e' A; i$ K+ V4 Z7 w: u2 }# r

! s+ D, f5 A% ^module_exit(led_platform_exit);0 u! |3 m, C% U) Z
4 f3 F: x# o6 D1 o# k

, J1 n) q$ E& G* E2 w) Y, H: E/ m
2 n" V$ f# ?  RMODULE_DESCRIPTION("Led platform driver");3 y# ?) F' ?  r* M4 o

; L  X* H" e. k1 |2 jMODULE_AUTHOR("Tronlong");
% e& L. k8 G, R% G
" L2 ~% t2 h# c( eMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:328 C) Q8 j) T0 ~: Y
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- A8 h0 m. ?/ y, L ...
& n0 ~9 Z2 O* u: u8 M( M3 N% }5 K" P: S
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
3 |0 H4 _: Q- P1 d3 Q0 ~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-12-28 11:54 , Processed in 0.044247 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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