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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
; e9 i" n* D- @
3 D5 _+ I9 M# Y: n, r9 A' |请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的1 e, O/ B; o+ \2 Y) s/ P/ C$ B2 R
  v  n8 w) r5 E3 K' j
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
6 d9 J9 v6 B4 y; m* V4 [$ V2 T9 D3 U) n9 a" M8 @

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:147 I  W0 R9 ]" u
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
$ P2 |$ P; `5 m. o& f
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
$ S- v: n( z' l1 S#include <linux/module.h>  c5 x/ z4 J& d$ l6 s2 m

( d5 [/ i# f3 Q( f- _# S; |#include <linux/kernel.h>
+ Q; }# L2 {* g0 ^6 [  f9 Y" o8 I
) z4 |, v# u3 c; v0 R( r' r#include <linux/types.h>
: K$ w( V5 z  [% }! f, a. ?/ X4 g' w1 z# M
#include <linux/gpio.h>5 Q8 E, M. C7 G; V$ j

" x% E- W2 p8 ~# p#include <linux/leds.h>
- g0 M! Q* F+ p2 @. _  l. I2 n3 Y5 m! @4 _
#include <linux/platform_device.h>
) E8 Y' B6 L9 v) G7 r, B
# S) E1 d6 s- V5 b9 N" u4 o
2 }. d6 U9 }3 m1 x! z+ A3 h% ]0 A9 {- U
#include <asm/mach-types.h>7 l6 K+ S) V8 w+ F6 K: [

! J4 ?/ ]3 k4 n7 P$ n& m1 b/ }#include <asm/mach/arch.h>
, \& F7 m1 ^0 w) `' K7 P" E+ p4 F) l" ?1 }5 M8 h# A1 j
#include <mach/da8xx.h># ~$ b' h8 Q% L+ T  G! m. P
; a0 _. k# F/ h+ Z
#include <mach/mux.h>
6 K4 L) u" M- d! K$ J! T) G. M
6 r9 v8 Y1 A$ `9 q  q+ R
8 ~3 D( w- G8 @+ S' L3 Z; ~% v2 q: r. i8 Z$ X  ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  X( U" q; U" J/ q7 |  j& m
" D; N2 S& F: L  k
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 Z3 p: @* I% O# w& V  T
' ^$ i, S% m3 d+ g+ Z9 X8 ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 t  L* X) z6 \; V. O

" k% z" A* M. x; ~1 Y  [' [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 x( p8 y% [; o+ \* i5 C; p
0 ]4 q' U1 x) Y
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)' i) b& a2 e) M8 e. ?6 q3 }' P. T
8 `6 h: G( P; h! W% m: J7 K
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
7 b+ n- a% ~. T( ]$ k! q# W1 M( V' Z/ O2 H: H: [- P; P
. v! B5 Y$ _  M
' C) R; u$ _; M1 c! ~
/* assign the tl som board LED-GPIOs*/
+ U6 r/ n+ P6 A% Q( W) ?
6 m1 [0 c9 N# r( O  o/ vstatic const short da850_evm_tl_user_led_pins[] = {
1 f* G% w: H+ d" V% ~2 F& d
% r, a& U% {3 a% A" G% v        /* These pins are definition at <mach/mux.h> file */& {# a+ e/ K9 r0 J! N4 T
1 |* s  u, w! t+ w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
- ?$ P& p" b1 U
# f$ }! d1 j! L% U3 b7 i        -1
9 ?/ B$ g! {5 Q: j0 J( p) x
4 A6 V( S" p5 D2 a% L8 e6 h+ m$ I};0 }5 q7 V9 k4 t
9 t5 ^1 ~& x! ^% l" c5 R  \7 @6 h

+ `' k& m8 c, x0 J& y( V" z, S' F' i/ S% Z3 a9 z  h# e
static struct gpio_led da850_evm_tl_leds[] = {4 G; I5 |) y& ]% {3 [$ W

9 _+ C. t1 h2 h        {- |# M4 F) N: b+ v1 [4 }' P, T
8 c! @9 Q8 @7 ?3 ~
                .active_low = 0,
5 ~) Q$ L2 ^: h. G$ x4 B5 T5 ^
# W. h5 ^. Z; j. ?2 }! K/ j/ A                .gpio = DA850_USER_LED0,. {, l+ `, F5 ?5 C/ X8 `

) W8 |3 v0 H9 l+ F/ f- h' e& B                .name = "user_led0",1 Z4 C, A; ^  X3 z
$ ^+ M9 g8 a5 W) ~. C
                .default_trigger = "default-on",
; L9 q6 {# `* E& {- m) l% R/ _# o' z* Z+ S1 x
        },5 z& }/ H# n$ A2 X9 Y4 b& a( V
6 v6 Y$ N0 Z' s* p3 @! @3 u& [* K- W; p
        {: U1 [: F5 C; F' j; G

! j# I; q0 q6 ~, ?, g% T; g+ y                .active_low = 0,7 C# J  _$ b3 y" y

$ f# \4 Q- h4 l                .gpio = DA850_USER_LED1,1 }: `8 h$ n2 E
4 `! j3 S3 s: F' x, v3 [, X, @$ `! x
                .name = "user_led1",! k$ D7 s6 I  W- c

- t" Q  l6 y4 P# O! Z. U. T                .default_trigger = "default-on",
" V3 {; Q* P* Z- J3 k2 h
- P' A' h! L8 w! S/ i        },  W4 u' d# x/ a% r, |  d1 C
) h8 Y4 n- j! }8 U1 M
        {
: _% k  }& t* j
4 r. [' k+ Q) S8 W$ [) c7 ^; v                .active_low = 0,8 \) t+ ~. E* A

7 |  j: a/ m- L                .gpio = DA850_USER_LED2," O5 t8 s2 ]6 o: l1 e6 g

: j/ y" b$ |, H% X; `) _* l/ [                .name = "user_led2",
7 X! X5 |5 d" g5 A& n
9 Y( p8 j7 T$ ]# z& f; {, H6 h                .default_trigger = "default-on",
* ?- G, B. m* h2 e
& L/ l+ T& ~  S/ R5 p( \7 S3 K0 U        },
) N4 ?9 e9 B6 t9 l- O- F- F3 S
" ^" J4 c3 c* h& D! ]        {
: d% U$ j! A7 P' ^8 E4 r. J- r: N4 z  F/ ~: _4 G1 @
                .active_low = 0,8 u+ D0 \4 Q. T+ z- U6 Z7 n
, C( H8 R1 |& k/ w
                .gpio = DA850_USER_LED3,
4 `- X- ^% O$ _. r# k; _( ]  u+ ?7 S1 x- o% n) T
                .name = "user_led3",! |6 F: k/ L! g8 U0 u2 O
, m- D. z, E1 [. B
                .default_trigger = "default-on",
0 y9 q( s$ r. M% _3 ]8 V. z3 a2 o! ?* s2 e- f$ [& T/ R
        },% |+ k7 v; c- A

8 q/ O! ^7 u; G8 _; [3 {        {
0 [7 f# m4 ^  j' m% H. q$ x: Q) g' a: v8 ?2 L
                .active_low = 0,
8 T& a8 Z. w9 O  X+ t) `8 r4 B. f, Y3 s6 y1 H
                .gpio = DA850_USER_LED4,+ s; s% `$ e3 q- `6 U* P, R
' }1 ~$ s* ?$ u4 h: ^
                .name = "user_led4",& j& F3 o9 T, h# f
  A# U& E7 z' t
                .default_trigger = "default-on",8 T  t" g- e- z' N: f& m- E# u
, f. s  {8 w, X$ H
        },( u# |; [: y* ]

- R2 Q% R& |1 o2 h        {
$ d# s5 N6 u# [1 v
" O* W! S+ O: R- A0 E$ z                .active_low = 0,
# z9 Y% ^8 _2 b  W. M
% e( L& X: n1 r" A                .gpio = DA850_USER_LED5,2 Y5 B" V; K) `" T" q" G4 p# x

  S) r+ G( G0 ~3 p& Q! F+ F% Y                .name = "user_led5",; H6 \. t3 [, L+ R
0 B3 ?- y8 h3 d9 ^
                .default_trigger = "default-on",
" M, C& W+ m3 U( k3 O, `  L  v; A9 Y  g; U1 J- u
        },
6 X! |; n% W% `$ I7 I; R5 I$ ?3 s3 X3 j1 E5 [
};
& p1 e" b$ w% l6 }2 g$ B; u. r+ j% B3 Q1 a+ l
4 A) w. D. i" l; P) D* b3 ^

. {; N; J$ p! U) Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 y- \! d$ g/ H- t8 z1 Y
) e* N! e- X1 h; O# B        .leds = da850_evm_tl_leds,
9 t+ G4 f6 }  T5 m3 m  Z/ B; {" ^5 o1 P/ `+ e% C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; @% S6 V+ H6 p& [* m3 n
9 o( o1 l+ i0 w7 ~# Y
};/ f9 o6 n# `7 d$ J1 a

& V9 w$ }: \/ V
$ Q+ h  U( u  W( v" d: m6 [# b" y; n: `9 K3 t# Q
static void led_dev_release(struct device *dev)
0 i, Z& a- g, e
! P9 x% G4 N" n8 V{
. @3 `6 S/ t! h9 W: `; A  c4 a  @) W6 \) S; h- z
};
$ ]* Y$ r( T# }" P
" L8 U' M$ F( i& U1 ~; z. G+ q. k% }7 e/ [1 j8 f
9 d; f, C1 E7 y9 t, q
static struct platform_device da850_evm_tl_leds_device = {
6 O3 S$ G1 q2 F- i, d3 X  w
3 j! A, L" t  E$ e        .name                = "leds-gpio",
+ S/ Z7 f0 U5 I0 ^- E  a1 Y: a1 p& t' i& q# p  ]: w- F
        .id                = 1,
; _' e- c, G7 ^9 j
, c2 R  j: E8 J9 h) C        .dev = {- d1 x% K( j* a' ?

) K" W* O' O' r9 e3 F- W5 `                .platform_data = &da850_evm_tl_leds_pdata,
- z) r8 C" y, e! |: f
6 {3 X2 e5 o* J+ j( x5 G                .release = led_dev_release,2 Z7 t/ p: q8 `" f( B+ g5 l9 X8 b

+ D2 f- L* M! Y0 e        }
" U7 ?% L  R* D  A( _9 w- B: [# N5 B( L# J" Q+ q! \! b% G
};+ I9 x- [  E7 ]9 b3 F9 G
' v. I8 h. ?0 \/ D' x
, y; ^& a" }7 }

( r+ _) P- X4 f$ X* R) tstatic int __init led_platform_init(void)* d; W) e. h6 m3 h( H
& k3 y; F/ S: Y4 |8 ~
{
. D7 k) S( ]9 {5 Z3 T! U
8 X( m( G" y7 I  v5 o7 A9 m        int ret;& T/ D. f5 o6 v# I) p
+ a$ w1 s2 E7 Z8 t& _
#if 0
# @4 y6 u' r- G# T& i* }6 s1 Z6 h, w8 u, I0 l  Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: x& W$ Y5 A+ O- S. B" H4 O6 Z. k8 m# M2 p/ ^2 f9 h
        if (ret)
: ~* j1 ^: o( ]' R7 a! |# j8 `. h/ W* q+ n8 Z" x) Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! m. g, Z9 T; u- u# Q; A" E3 F" I0 I2 ^+ x9 ~( H& j
                                "%d\n", ret);; Q/ E' k/ r7 n% ~% p
+ ?7 M  a: M' D) d7 f( y! C0 B% m
#endif
% e* s% I) k% P$ J! x1 r
! A7 r! D% ^! j$ ^) l5 E7 c        ret = platform_device_register(&da850_evm_tl_leds_device);0 r3 {4 B: r6 O3 c6 e* e
% I( L" _! v5 E% v, \( D
        if (ret)8 f/ g7 C4 d$ e5 Y. w0 e2 P: x
: `" ~; w' c9 s0 d: k& ^
                pr_warning("Could not register som GPIO expander LEDS");1 O, U# _% I! x; O0 T  W* x

2 T* X. v' p! ~* N- W        else
$ n" z4 X3 \& R, P0 r7 n, j5 X2 }5 L1 u  y+ h$ G
                printk(KERN_INFO "LED register sucessful!\n");
/ B( y% `& T% Z; \& V  t
5 k0 X" s' G  ?/ }0 f& ^; p$ P+ Q% R; J( ]

* M  Y/ a' R0 O( w4 j4 ~        return ret;3 i: h4 ]6 x2 E9 h* A

  I9 m7 |# l3 K% l$ w}8 H% z* Y: w5 l; p
3 g' F' \4 M8 X! ~! y* T* n
* e7 N" b) k3 i8 M  V

) \% D& ^$ d9 Y1 g& V0 lstatic void __exit led_platform_exit(void)" }' y, J7 E% W, _) ~9 G* w
0 R) ]/ O% Y/ O2 d# X
{# A6 [/ {: \% W) Z4 S3 n* w& E  \3 s

- X# c* W8 ~; x$ X        platform_device_unregister(&da850_evm_tl_leds_device);/ P7 p- p* U* H/ G9 q

0 Y1 a! w# k/ C3 I9 J: @: z5 n  ^! @- `: N5 k% p# @
; n- f$ r( n- c# y  R/ t$ Q
        printk(KERN_INFO "LED unregister!\n");
% t5 O: g- h0 Q
% W6 y3 s3 M: q8 g; C}
; g7 \( G4 S$ L7 H' j6 z2 W
9 z4 Q5 y9 m  N: n! R1 g
8 p$ y8 G! L8 s! \5 \6 K: Y0 T1 o4 e: M( N
module_init(led_platform_init);+ w4 z! |' |. k0 {; c/ r( A' g5 t

5 g8 z) R! c- f- t$ A1 ]module_exit(led_platform_exit);
1 G5 ^& o" E+ h, W% P' H) M, d" q( n, W: B- c; S+ @
# d9 |, X/ ^7 J" B
) I4 Q# g: X, k3 p- r* r  ^; f
MODULE_DESCRIPTION("Led platform driver");
. w+ l. E" i4 D0 |, Q' H, N6 O' U. [: s6 t/ G7 f
MODULE_AUTHOR("Tronlong");
' ?; r9 B, A% T5 {
2 I( U$ `+ f2 J; f) k" cMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。* I4 o, f/ D& d

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32# W5 `: s' z! k& z' {, |$ ]! _
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。5 u: ?4 u' V" u6 k/ y2 `, |: ~) G
...
* T$ {& u+ }. B( {& L
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。5 d* C& Q+ _; V  x
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, 2024-4-25 02:14 , Processed in 0.041966 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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