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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 + V( F; P# c! V5 }. [% U4 q4 {8 s% D( a
( R$ V3 ?5 b$ l5 j
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的' i. R! d( M! E6 [" t" {5 M5 \0 Q

+ v; \4 M! _' J0 {& I' Y之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
1 n# g5 \. P( [! ^4 n4 k
0 A8 C+ O7 }( S# H' s7 [5 {4 l4 A- w/ @

本帖子中包含更多资源

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

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( @! E+ y6 x3 K* ?) ]
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
1 y0 _/ m: e$ r; F+ l2 h! q4 z# k
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:4 p1 G1 o; J$ [7 d0 d) d* b# x
#include <linux/module.h>
  w* ?& r! U0 \; n
+ w. Q5 l# ]) s" y! X( [#include <linux/kernel.h>
# }+ n2 Z- @( U2 E  @# i
& G8 x* \% w9 K# a- x- s#include <linux/types.h>0 m! S+ H8 r$ {3 j! Z& o$ T
3 I$ }: F% }& N
#include <linux/gpio.h>* S0 d. }! R2 o6 N! x
# v6 b$ w& d- e0 Z' H
#include <linux/leds.h>6 `: D' D1 U4 t: K! c+ A; v

4 c- Z4 X# y/ F#include <linux/platform_device.h>
' C. r2 ^1 }: F) n
! T# d$ ~$ A9 Z5 d5 Q. G# X/ Q
7 X. T5 n; Q& Z! Z" a
& ~' f; r# z  Z3 V# e! y* G' b5 F; a2 N#include <asm/mach-types.h>
" u; _9 Z0 k: d0 y0 e+ v5 d+ u! g# m
& G, G" w/ u( W3 C; U& W2 D#include <asm/mach/arch.h>
" B$ X/ S1 u7 s3 v$ Q; i: m- O! n( {' Q! B0 A: k
#include <mach/da8xx.h>7 v$ a& c9 u* L' ?* D

, b; D% L3 ]0 [2 n5 J  e* |#include <mach/mux.h>
' q3 }5 @! h* U) g% d' i# c0 B8 t6 a5 P2 B  Y7 L, _
- n" H6 e! \5 X3 H! u( ~$ L5 E
9 }" c# Y/ ~+ x* A2 g# x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- u7 t) w9 `( M3 [1 m. ?% N$ H$ y8 v) @8 G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, I! M/ B& M$ I/ n7 k( [8 k1 [3 d- X) }) r: M6 o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  ?" y) f( z7 P+ e0 w6 Z

9 `9 a, d2 l1 X# u9 u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- g1 W1 @: o- y
7 B: G1 ?3 v! u" l& \
#define DA850_USER_LED4 GPIO_TO_PIN(6,12), T9 s7 z1 @  B. t* m4 r$ x
* |6 V1 t0 z! H4 I4 V5 x  i
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
4 i2 I, M0 w* i& i& r6 [% M5 c3 j$ ~3 t
5 y5 G, w/ O; m; ]# I

/ Z( r3 ~+ r6 |5 }) u. P  D/* assign the tl som board LED-GPIOs*/5 [- g! g. t" ^+ o7 }6 u# ^
0 @! K' y3 [' T$ T4 c5 `
static const short da850_evm_tl_user_led_pins[] = {* N2 X8 u  g: A. I/ K5 ]
) r8 J: Q  R  A8 D6 [1 t3 S8 j: _4 k
        /* These pins are definition at <mach/mux.h> file */
- p0 ^; c7 p7 O$ T3 w1 e. n4 X
) q# x$ p! ^9 Z4 D! b5 ]) g4 L2 }( H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,6 G* U4 v) d8 m( d9 s6 C2 ~

3 q8 I, {# x0 ^1 k! q1 }1 u        -1  |. k% L/ c% _
$ t5 c0 l# S/ l; ?/ H
};$ |3 u2 G: ^3 J. d3 n& b

& T7 }6 x4 K- B& t7 ]* K, s
8 u$ d* P/ N2 J3 V( ^% @2 |
1 T) D1 z* O; f( w  c- j2 Ustatic struct gpio_led da850_evm_tl_leds[] = {& o& \, d& I) o! a% J

8 u$ i6 b7 A0 o6 a        {
8 a8 L6 p. \& v  [* `% s, t' a2 t( e  g0 ^
                .active_low = 0,
$ g* s. d; x7 T& y3 k, `
) n) \( w4 o' w$ |$ w                .gpio = DA850_USER_LED0,
5 m' G7 r9 S+ C# ]1 ?6 j, ?8 c. p8 }4 {0 E5 f1 l
                .name = "user_led0",) v$ l7 v. u" j5 c' Y: f
3 p2 }- g; E2 ~. N
                .default_trigger = "default-on",- w; k  i0 [3 ]: H; h. a1 K" S$ o

5 C$ U( b3 h4 i% Z1 e; j4 E, \9 _        },
2 v1 \5 p3 I; p# h; w  G7 j1 V4 c0 C, W' I, D+ _" A4 _; W9 f
        {: E6 L2 D& d+ m) C2 P

! ]7 u' ^) y+ [# [                .active_low = 0,
5 `4 O0 K4 F$ ~; [
2 D& q5 [; ~9 |5 O1 Z: w: s                .gpio = DA850_USER_LED1,
. D& P# H0 }9 Z. G7 ?4 T5 v" X$ a( h5 \5 x
                .name = "user_led1",- N+ ?7 O) w4 u. t" j2 V7 L. X3 Q
& m& U% j+ N/ Z" N4 o* |+ g
                .default_trigger = "default-on",
  m5 w# K  b' f/ V2 c
' r' y3 B8 j. v1 S* F, \' e) i        },! k, U, l! p, f8 F' e0 i. Q1 d- E3 h
# _% S& J( h- _$ y
        {
) u% O- p: f" V: j) C% q1 s3 o. N- _4 g8 X& R
                .active_low = 0,0 @6 g- S$ l7 A

; K& L* m7 H; I- E, N                .gpio = DA850_USER_LED2,
1 y; K0 Z# I+ E9 \0 U8 U3 A/ ?9 E
4 l! D% E( {' U4 o% T) W                .name = "user_led2",
' W, Q" Q7 u$ k1 d3 [% g$ _, f1 S
: \5 s1 i: x1 g: u8 d                .default_trigger = "default-on",
" z% s3 z8 |% j9 F! N7 g
* p- ]/ R, G5 K+ f. P        },
' j  E, e: k3 z3 P  w) i
& A( s( K! t5 n3 n, J' y! _        {
8 H0 ?% d4 X: t' b" g1 F) B7 E5 Y% k
4 n3 y1 k/ i% W- h9 @, J7 l                .active_low = 0,
) k  C: i0 W) S5 N. e  A: O" g9 C
, N1 K' j- ^/ }% D$ K6 J                .gpio = DA850_USER_LED3,
. W+ R; h* F% G/ a7 a
- O5 J: {8 Q7 {: G0 O1 |% Z                .name = "user_led3",
# |! D  o# R8 f9 f3 \- ?! f$ I
                .default_trigger = "default-on",
- P( g! M) @: _# i4 X$ P3 \* s
- E/ t4 ~2 x9 I6 p1 t$ x5 |8 Q        },
) }; M8 `( ~9 a7 @. H/ {7 H, Y
& A" i: R. z) @, a$ Q& T7 f        {
8 o1 t1 e$ M; T% }: l4 c; K1 o
+ B* m& Y8 F2 C( t* n3 b: c9 w                .active_low = 0,; p" {  b$ k. G- H$ X
* {' E: u7 h! Y* ~# t. o
                .gpio = DA850_USER_LED4,
( J: `5 @: O7 V3 L7 i$ m- w- d: k( |5 t4 s3 [* J
                .name = "user_led4",- G0 \5 m% J! N9 f& y% M- @

' U5 X8 }$ {+ W9 J5 I" y0 B                .default_trigger = "default-on",$ b1 h1 @( t+ f# V7 I

1 u  A- o+ a9 \        },7 D. L8 {( M" w5 v
0 n' Y! J5 Z( g( \
        {
, Z- l; M2 |6 M$ ]+ t
* i: B- D7 \) L: n0 J3 @                .active_low = 0,' a; T: g& X. {
# g  J; u1 c( ]8 u6 N+ H1 ~; T
                .gpio = DA850_USER_LED5,
$ e$ Z$ N- j  V. B4 H- M5 s
. X9 [8 Q* [0 M- n                .name = "user_led5",
( ]0 L+ v, D* t, |0 @  \: I
* V1 x/ S) o* K( e                .default_trigger = "default-on",2 L" R6 [/ [5 t" V
7 s0 O. J5 u$ I1 u
        },
4 P1 D4 M0 H5 v5 I+ H" ~# h( H" D! b2 t% X8 M, {
};
. x3 W1 {6 n$ B1 _) c" g
; `( L7 l! M6 H2 S$ ~2 Y& `
' i4 [; B! }! ~# f2 g2 W7 u' r6 m; J5 p: H( c1 L& W/ ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 `6 x# r, z( k, u

* l2 z0 X3 z- L- U* }4 C+ B& i        .leds = da850_evm_tl_leds,
- I) D4 m! ]  x+ H. p9 x, f
. b' n, I- I$ E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 N% W  E6 N! M" Y$ m1 R. `2 Y& ?. L
};7 F4 S* Y, @6 m6 d- {* `
& m7 g0 N0 t4 I& I5 x7 z

( e5 A. K; ~  u! C- I' A' y5 H
, ~( P  s( ^6 `' tstatic void led_dev_release(struct device *dev)8 ?  A' F" K! U* `4 X& O8 k; a
: R; n0 {/ w% d6 R# j
{8 I1 M8 [  f/ N3 Z9 R: `& [; l

4 m: z9 L3 q/ R- G" e( m; r$ y};: Y. b" E" q& R
1 K+ h- D3 U3 X0 z. H: a

* F2 L1 K0 z$ S! R- @1 {* I: }9 V6 O: P: g9 u
static struct platform_device da850_evm_tl_leds_device = {
' A2 w5 U( `; E9 M% L& a
/ \& @$ t8 }2 n- I5 V3 |( s. a3 I        .name                = "leds-gpio",
/ [6 A, W- B; d: v. Z4 |' W
; R7 ]0 k# I0 t9 y4 O2 Y        .id                = 1,
, F; }1 z4 N! I6 \9 u; P' F, b6 r
0 v( |- x1 @& s; J1 I        .dev = {
/ E$ [* F2 I" \! a/ v4 m7 ]) z& O8 n0 g/ m* r& t" o
                .platform_data = &da850_evm_tl_leds_pdata,
  o- C0 ~  Z- J& Q$ [8 ~2 \6 M& ^; }3 |
                .release = led_dev_release,. W- g' [" [/ _. m. L' l" x0 H# D% ~

! {/ B: z" {" @5 t' m. k        }
7 Z5 |% `6 b/ p
# C' V4 w7 a" \3 g};) Y5 m" x5 [0 t" Y" c
) H5 U. @* c& [/ a8 S0 j! @

: {# a- l. g/ k4 ?* p; E+ n8 R- P$ ]# m
static int __init led_platform_init(void)8 s9 u! k  e$ b4 _; k0 q% p
' F0 n- T, w3 G
{
. E0 W6 W, ]) k# `& G: q, ^2 @4 e, f3 e
        int ret;
) J3 E7 n! o6 ?9 O) T* a. U2 b  c
#if 0
$ Q7 q4 F' h0 Z4 C# z' w
5 b- e- u) ^, G& T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ x# f& P5 N8 S# l* q8 w  K; {% C0 ~; O, K5 q$ \
        if (ret)6 D( I+ [. n" D6 ]* v
9 d; r/ Q6 s8 y0 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 e3 k% k; I( W, P% G5 ]& J  d2 ]" W: {/ ~
                                "%d\n", ret);( z& z3 H0 {$ n8 b

# |$ X1 h/ D; i#endif
( J$ s7 ~: }" s, m! r9 v& y3 {# G1 b7 I) V; m0 k" ~. c
        ret = platform_device_register(&da850_evm_tl_leds_device);( A, Q3 C$ i( W+ F

& z4 f* B, X, a1 A        if (ret)' P5 J( n2 E* i0 z- w
2 \" |% O# U; n* p; y; h5 m8 j
                pr_warning("Could not register som GPIO expander LEDS");
( H  V0 t  ]/ z: v
/ t/ u2 w2 C0 v( c1 E        else
! W$ _6 M$ s4 a& F1 s' d" M% z/ o  d+ N" R7 U
                printk(KERN_INFO "LED register sucessful!\n");; m# v" ~0 w8 z4 V

% D% ]0 A, B: L2 p0 W5 U4 f5 |7 D6 i! I: D9 N- T

$ K. x& V  u9 A        return ret;  o% g' b$ d- R8 S$ D9 W
  ]- y3 F1 C" {. U% X4 H
}
/ ?! ~; [4 ~! V$ d! p1 K8 v. b+ N$ i: o
% H* q2 ^) V/ |. l3 `
# Q' j' j% r. e- g) N& g% @( h3 @4 @
static void __exit led_platform_exit(void)
& m8 B# ^" U+ J( `/ p+ \+ q- g7 j9 J' t# L0 j
{
) ^, U; t& d& G! m% b1 F% |8 h6 t- m# y! _  T
        platform_device_unregister(&da850_evm_tl_leds_device);
+ f# F7 r1 E3 [2 E0 z, ^- C1 Z7 L$ B; n% M4 j" @( S
" [% G4 ]; j0 C: ~9 j4 h3 M7 q- _
* g, N# C3 a' {; o7 ^8 l
        printk(KERN_INFO "LED unregister!\n");
% T. P# \" e: s4 s- i8 x+ P; b& C
}
6 {2 E( [) `9 k- I! z$ Z' R: D' I
/ g$ o* A0 J" J, F- Z5 }# Z: e- Z; Y4 y* d- Q1 k
2 B4 y4 h! z6 |1 ]0 X) ~: {. d$ I
module_init(led_platform_init);
' f7 ?  Q! {4 k1 ~$ M
& J# T$ T' k; o8 u9 i% V" Pmodule_exit(led_platform_exit);
  e) a( q1 `& o; i6 F; ~6 h2 W. g$ F' s
( Z- a9 G6 G. G; \

( M/ G; {. x$ G8 k+ MMODULE_DESCRIPTION("Led platform driver");* a: y6 b* b( ?7 b% r
" K% g0 Q( G8 B+ E! H& d
MODULE_AUTHOR("Tronlong");
$ _) {, r& ?" ?) X. `0 i$ s
, r4 ?; I* f/ l2 `* {9 HMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
0 Q  T# `" K% s

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32. \6 N- S7 ^$ D' h2 |+ X
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。( Z0 W3 C% m0 o4 W4 u
...

/ ^+ I6 ~$ f- G4 V( V好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
$ H! z# b% c4 k+ shttp://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-19 07:01 , Processed in 0.077064 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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