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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
% H+ X! ]+ ~- F! m5 R1 g) J" p* K' A: k+ i, \2 B: i
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的. [$ k# S! i7 s
, i+ k1 g. _: M: `; x8 T( B% E' z
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
+ o' T* i2 |* }# K0 d4 n. i, B) k1 B7 ^% N! Q( T. 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: m, S+ t4 l; g+ I* J
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

, f, t$ k$ {9 G3 t我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
4 K9 e& x. W- H: n4 `  k#include <linux/module.h>
8 ]: ~' K7 L$ h: I" E  V
* Q6 H: y% V* P#include <linux/kernel.h>: M. \9 j; t2 e- N4 S7 F$ R# T- b. P

* M" L4 Z4 q- ~#include <linux/types.h>- _& k7 P7 g( l" f- ^
' X+ a0 q" V  ]# d0 V- K+ p
#include <linux/gpio.h>
8 v# K: F; G/ o0 J% V. G2 O! T% M- R% k; J) c* w3 h
#include <linux/leds.h>8 y/ r8 w/ C1 s5 v/ L
( k) O0 s( \/ m/ G# j, V- S
#include <linux/platform_device.h>7 Q- }9 L7 C* F: \) v) z3 \' Y

* |- L$ D- V5 U; U' p0 Z
- }: u" E$ _+ K7 `6 _% \7 }+ I0 ~3 E  n" V0 B( B- f
#include <asm/mach-types.h>
1 T0 @" W5 Q8 o- |
  T2 g6 K6 J# w& R" I#include <asm/mach/arch.h>
0 l7 B. w0 }  I6 N7 A# _8 V* u5 H1 m3 l3 V  J/ T
#include <mach/da8xx.h>
1 C7 M: u3 u: N0 ^6 H% k/ u. _  y3 d4 }
#include <mach/mux.h>
+ I% u3 V: ?  e( ]7 M* P2 ~
- Y1 X) g# Y* g6 A  `9 s
$ E# u( G" y- W/ O0 g1 Y
9 u" ^& E8 O# I+ `; |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 w4 A0 \. t' d. H& ~# y: t

. y7 N7 s! q9 Z8 `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' ?: ~. r) \8 o4 {. K% i8 i. }
) b5 I/ O' k9 N6 u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ p) o- F- ]4 G* J# s3 H
% P/ `( V9 o% n9 A. M1 o) j! M0 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 J; q# e3 [# i6 j
2 |3 c" r5 ]5 v
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
! a: R( g/ A; I3 ?' C- T
6 Q2 U# {3 u9 I0 |$ Z8 L. k#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
* M# H7 x, i" v3 r8 A% G! U9 Y& \/ x0 }- f
) M$ @5 U- N' X+ ?- b/ h
. k$ `/ X$ P8 `$ u* e
/* assign the tl som board LED-GPIOs*/
3 p9 M7 o3 [1 i) U, l% c" a
; f5 c6 r8 ?3 ?" d7 vstatic const short da850_evm_tl_user_led_pins[] = {
8 Q# m- T' M0 E( U. J, }/ G. C  O$ P7 B$ w/ u6 a3 e' K+ \+ v
        /* These pins are definition at <mach/mux.h> file */! ]9 v, E; K) z

' y0 x9 I* N7 c' K$ R6 U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
: l9 Q9 Q7 `- d* \7 `: h& `5 D
! s4 _& j" [; I1 N. Y- G8 h  }        -1" l0 T3 L6 U4 r6 n
5 b# X9 A! j, y( f
};
# ]( s7 \4 C& `- M0 Z5 R* P# S* H3 z% z! S

' L2 B9 x% {5 W1 \
/ o" |1 F5 z! L% i- M1 _static struct gpio_led da850_evm_tl_leds[] = {" f. y6 G1 H- s7 ?& ?

3 J# h- Y- N* |8 j  o; ^        {
- C, }( P. a- }
8 q" R1 |% @+ ?+ d! o8 d0 q, A                .active_low = 0,
# }- H& B2 X: t/ X3 D
9 X7 R1 l- f; R7 [                .gpio = DA850_USER_LED0,
2 p' \; t4 q- p9 `; T7 c$ B) i2 Q8 d. Q, B
                .name = "user_led0",+ y4 @( @) K6 O6 E- a$ O

9 K$ a( ^5 d  N                .default_trigger = "default-on",/ ~( a4 Q5 d- y2 P# i  s

+ o* z) T/ b$ `3 N- j        },
5 _* b4 J: e- a3 Y* `7 {% t* m1 w$ G* n) R- g1 g! v; _
        {
$ o$ L5 y- d. |4 R- j- H  ]
; G8 |' R) h# a# L2 k                .active_low = 0,+ x# ~  V- e  F5 g
- q9 j( S0 |% H; R5 T: I. j- a6 t
                .gpio = DA850_USER_LED1,! o/ u( n& p# X: e9 _7 M7 ~2 q' Z: O

% }6 s4 k8 Q. n3 o% G4 ^  \                .name = "user_led1",
% h' |) L0 `& I8 A
" Q$ x. f  k' s8 x& [0 w) Q                .default_trigger = "default-on",
2 Z7 x" U; b" Q- n  w% O
4 }/ K* r6 u7 |, y5 V, |8 R# I        },
5 g, [9 X; d$ T% B. t
( F% Q9 ~8 D0 g$ v/ x8 U        {
! F" Q% I$ r- T  }; P5 m
; y: N& v* A) e                .active_low = 0,/ X2 s; F' ~$ p+ z: t

0 x, d$ y  Q1 V1 \2 ?- g                .gpio = DA850_USER_LED2,( `& Q" E' F$ s5 N: f
1 E( R3 u5 _+ {2 G1 S/ y
                .name = "user_led2",8 X/ t% S- k) `7 `( R! Y

  f, H. ~! \0 A" j+ Z9 }# B* }                .default_trigger = "default-on",4 o2 m% T5 n4 I5 U( B. F; F/ W  ~
: i$ }  ~$ v7 O$ Q( w
        },
4 Z) |1 ^, d4 j" P! {  _
, Z) U5 K. U# w6 [        {
. v8 Z. Z' m! r* Z! g8 k% Q
1 }7 q9 L3 h8 p- A- Q                .active_low = 0,
$ ^/ ]: A9 J) f5 m) n! K* c+ ^( U. o8 ^
                .gpio = DA850_USER_LED3,
4 Q' p* l' N2 R' U4 q1 F- ]) i9 A1 U7 |- u! H1 B9 l2 G
                .name = "user_led3",! y9 L) L4 I/ p1 E* T* e9 M" b
: {7 p) j+ X! ~6 E. O
                .default_trigger = "default-on",
+ i/ R; m  ]3 b4 k5 H
% s) N4 ^, O9 m7 ]8 o9 Z        },
. u: x: A: p7 m
* T) ~7 @- ]( G3 x" V* T        {
2 n( L+ h  v5 H4 G. h( a
: n+ ~' p. w+ D% \- p1 F- c% n                .active_low = 0,
! T: j& n; v, J/ f
: N7 S/ G! h2 ~                .gpio = DA850_USER_LED4,% f! N" y$ ^! ]8 R5 {/ [
# B, U$ T4 Y$ E* E4 V$ C8 c9 a
                .name = "user_led4",5 N# e7 Z0 P# |2 F) F

( h5 e3 q) ?5 M* N9 N                .default_trigger = "default-on",
0 n/ ?( b  f+ w, `2 y  W3 R. M) _# `
        },  T9 g0 I+ j( a$ b* L" Y) o

% h' x9 j- s5 G. G0 {. A8 F        {
1 T. I: |7 y4 L3 Y& ^1 W8 Q$ E0 [9 G$ y6 ]# X0 v1 i  Q
                .active_low = 0,( o! T  b! A3 x/ I3 K: z1 y4 `8 E

/ A9 A, R5 n7 Q7 a2 _& u& J* U                .gpio = DA850_USER_LED5,% c. f6 ?4 O' n! Z3 c
8 Q) z6 }/ x: C- y
                .name = "user_led5",
& M, t% u5 W, h
! T9 T$ `5 {) |; U$ p5 d                .default_trigger = "default-on",4 x+ Q9 j$ B$ w% E. R# u

+ l# D* c# M0 U- d' U$ d        },
6 Y5 T/ m, e. g' R7 U7 @
& H2 k6 s4 [) G* G) f& v};
1 Y; c4 j& S4 d1 p1 M; @; W3 ~/ K9 z# D: U1 G- Y3 W
) L: k4 X! c* D

* M, m0 R' n) N% h* ]# v: _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 h3 H5 O5 R! [, ?) b% P( r) p1 C6 w: G; Z
        .leds = da850_evm_tl_leds,; P: S4 Z! j- W

- e3 g% ^" t; K# N' T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; i1 A2 R8 ~8 [* B. X6 c

5 A2 N* J( U( m! I  K, I};
: _- \) n' f3 o7 e2 @: j* f: O
6 {/ q$ ^9 Z0 i) M
# e% |- ?6 h- ]% |# a9 @& f7 g) u+ X/ `. C$ P
static void led_dev_release(struct device *dev)
$ C8 U( Q! E! L6 }1 p- d( j6 w! w7 x6 T) h1 o
{- [& c3 _& K4 l6 `* a3 h) }8 i
( g8 y: p! X  c* }& I
};7 Q+ G& D/ q' v; w, B8 l' N# W

: ^. M$ \5 [" T7 E( V* l! ~/ t# B( K+ ?- d( c. q+ z" f& T
  q0 v5 u' c9 s5 L# i, }
static struct platform_device da850_evm_tl_leds_device = {
7 o7 M6 g4 Y/ I4 W) D& M3 w; Z+ B- t
        .name                = "leds-gpio",. {! v* E- o3 z  [$ e8 L7 _
! i* i- j& @3 \( m) E. R
        .id                = 1,
* u3 X$ B4 Z  [% W1 [
( I9 g# f6 w8 i6 F        .dev = {. `. x& |; ?" ^

5 Q, f  _& x% u  J                .platform_data = &da850_evm_tl_leds_pdata,. w- {$ i' i' @( t5 L0 D9 w

* _0 x! ~7 a5 z& j: a# i9 Q8 ~                .release = led_dev_release,. P* `& ^, o/ f

2 k6 h0 |! J- M6 D% ^        }
  b" O4 B  Q" l7 Q2 K, G( `& q" c, v2 R. o- s- X
};
* k3 U: q& w0 J: j, Z
8 g) C& a3 a. f3 H6 _" O( `( Z! M+ Q3 W3 N3 P: C4 S0 a' B
9 Y  F5 j: t4 O6 B2 x3 D" E2 ~. R
static int __init led_platform_init(void)
+ ]  a3 b% Q3 {/ w7 J2 \/ w' k. D- S* m2 U
{
5 p) @7 t1 D- G2 ]
" O0 k# e6 F! n$ l+ W1 @6 \        int ret;
% D2 p9 y" _1 v9 H) [/ [2 E( x! D# h! R" i3 w
#if 0
/ m* j9 C2 @' i' l5 R- x  q+ s+ |5 o7 I! d9 ?- n; _
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' T3 K5 n4 ^1 W3 m5 J

3 t2 q* [3 e/ B- H: D- ?        if (ret)
2 g7 C0 t9 V. L6 C1 F: C4 K6 u: Y8 }$ U3 ^$ H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) k! r, K& U+ a8 m- a3 `# q  D3 o! S8 h' q  `/ l
                                "%d\n", ret);
# I7 G6 c4 n0 T: s$ `- V/ C
% i4 Q5 B* I4 d#endif8 q. t7 x& k+ e3 H

5 O9 T4 s$ V& a  D; @5 j5 r0 Y        ret = platform_device_register(&da850_evm_tl_leds_device);
( o% ^- _. I1 G- ~" F+ o5 O2 s' t# b' I- a. Q- L1 o3 S, ~, |
        if (ret)* s1 V- v9 L3 B* i* {$ l( `, l

# y6 x5 ]8 `; X. P                pr_warning("Could not register som GPIO expander LEDS");1 F' b+ t6 v1 j

  E% z8 z6 }- k/ e( o        else9 {7 V0 e. ^+ W
" o( v: O3 \0 A$ ~; U
                printk(KERN_INFO "LED register sucessful!\n");5 _& o& }+ q8 _1 _$ I

4 C2 R* K: O7 l" R. Q" r1 t. u9 j1 g6 a

" d+ W' `7 z9 s        return ret;; R0 K$ _+ p* j3 Q4 `

# E& v* m& z9 i0 b1 c( o7 g}
! }( C- t# u( K& B0 _, y5 p/ p0 w9 u6 W! q7 o

" x, N5 a# j1 }# n, Z' I
7 a( X# W' s  Y! R7 i2 Bstatic void __exit led_platform_exit(void)
) E9 y+ E' C0 r! i# @3 G" K* W) L" g; \" r6 t& i0 p
{, K- X, ^' X  S- e( _! H
3 H  L5 o& L4 L
        platform_device_unregister(&da850_evm_tl_leds_device);& d1 \. w! Q2 j* Y2 y- |: I
5 p) L- w, Z! q0 e

% G3 d  N% [& a8 x( j# e* c* ?' ]; M2 J; B  Z, c6 @
        printk(KERN_INFO "LED unregister!\n");" p# A8 J" b- n
8 b4 i: W4 [2 r. [; l1 {
}4 S9 x) Z% O& Y
) [0 J& p8 [  T8 Z, A1 N( g

3 R9 p+ I8 p8 x$ _7 w8 y/ I
( l" p# Q9 {: Cmodule_init(led_platform_init);
1 T. o# U0 j! P7 t- |: D( \7 O2 L; E7 r
module_exit(led_platform_exit);
; V+ e" e3 C7 z& Z
$ ~3 @8 \0 ^  f* W" r  z  O& h+ p* Q  W! |2 l* t
+ y) g- P$ L& ~+ x
MODULE_DESCRIPTION("Led platform driver");5 W, d, x, B" m1 G3 i

( k9 ^2 C- u, C0 q* l3 DMODULE_AUTHOR("Tronlong");
7 o9 I0 ~; v6 r4 M$ |: E
8 `: M) W2 i& a. H0 i) |MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。5 i4 o) f4 d. i, l: @( B5 a  Z

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
1 e+ j0 O2 d) \8 ]2 N您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。: `8 Z$ f9 H# }
...

0 N/ c" h; H0 L$ ~0 S8 i好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。6 b: k% T0 r, t0 W4 t; ]
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-15 17:39 , Processed in 0.042812 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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