程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 2 x, V; [& A8 }  e" y5 D

  Y- l8 ?* j! Y3 J请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
' k  E1 w+ k1 F1 g8 j
2 T2 h* g2 w6 }) K3 J- ~之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?# z8 ^1 C; n& g* p
" h9 x$ J% i* K* B

本帖子中包含更多资源

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

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
- h6 i6 [3 ~5 g4 b! llinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
7 ?! j6 n# @/ l) o6 G" \
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
- G* Y& j5 X  Y$ X8 K6 Z#include <linux/module.h>4 f6 r5 H2 _1 `

+ H3 G! z; b3 ~: f#include <linux/kernel.h>2 b2 M8 n8 ^+ l5 K0 X0 a# h% V

5 F+ ]5 N7 i# f% m#include <linux/types.h>
1 M1 l8 }4 |% L) g9 S+ ^+ h; C
* P' i8 z% N$ O" r  l( n#include <linux/gpio.h>+ K% N) o. w9 S/ v& ^4 x7 v& [

" x, s8 z8 g! T( o#include <linux/leds.h>( |- w$ Y5 L. ^% H

3 Q9 a! \) {2 X4 s: M& r1 o#include <linux/platform_device.h>( Z+ `. i6 E6 ?; a; k& _1 Q  ~

4 K2 J) N1 i8 c: j0 t% g7 N
4 f/ r( E" s& t( v0 m  C& g6 [  w7 i4 W! [5 D' _+ `( U
#include <asm/mach-types.h>* b: D+ _6 q8 d: B

* L( p/ X* l3 |4 S. |# z: B#include <asm/mach/arch.h>
4 X  D: n7 ~8 s
5 N7 Y+ @& T. C! B7 s* q#include <mach/da8xx.h>
8 F2 Q/ H2 r7 h" C9 Q; m" o. }* C( r* J0 |" X5 h# G9 V; |
#include <mach/mux.h>
5 N# @  }5 L/ l% C5 g# q3 }- {0 H( R' H# o0 Q6 X8 }9 U
( m' c+ e+ e; ]6 C7 S
- ~, U: J9 E/ ]+ ]  g3 P% N8 m3 R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( ]7 Q5 G( s4 j( K
4 T* E3 L$ @5 L9 L* x; n* ?$ n# \  B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ e. O: g2 h. j8 k
- a4 R! }; m# |5 U1 M) ?  s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" L$ ]" V3 z% L

5 }2 V, `, k; |7 i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); v3 K7 W' v; `' t0 t
. i* Q3 V/ q7 b# N* f( i' @2 X
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)# Y2 T' P! w! J" |/ K( e- C( j
$ N) \4 A4 N; ~7 G
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
' C6 f+ |/ |, I$ z; N, H- @6 E/ T0 P0 Z! {& T2 `( A  G

% z& {- \6 h) ^, ]+ |- q! q$ s4 T$ P
) c/ e, M, R) ]/* assign the tl som board LED-GPIOs*/
+ b4 h& g9 n1 O  ^% g; B8 J+ w6 l7 q" y/ ~
static const short da850_evm_tl_user_led_pins[] = {( l2 x7 X' b! M
2 _, @. T& U: Z3 Z  m" F9 F5 h
        /* These pins are definition at <mach/mux.h> file */! I- l) T8 p* A$ _% I" E, `. R

0 E; w# f4 _" Q# ?5 o# k( [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13," j0 M) h( G' P0 v
1 `& @0 D, M8 ~, d, a
        -1# m4 B: V% ~* N' B
2 U* C7 V; v$ T9 n2 X
};! `, f6 P; l8 e% E5 ?5 e1 W2 S7 b
" N& W8 @- G7 }$ c2 |# E

* Y* \% O1 A) T/ C& F" c
5 F, O! j& q' t! a4 mstatic struct gpio_led da850_evm_tl_leds[] = {
5 b7 b' V/ h$ [- L8 i
* c$ G' R0 G  Z! {        {
7 Y# {6 U( g) |' S' k  {* S$ K# j
1 [' q, {: E: h# ~* h7 J: i9 ^                .active_low = 0,7 N$ r5 I* W" a+ j5 E9 m2 x
5 ~# d" v' D5 u. u8 I7 ^
                .gpio = DA850_USER_LED0,1 v6 Q$ i" N4 G  r  [0 A
% s- G' j4 k5 ?( w
                .name = "user_led0",- \. j! O( E0 `$ }# x

' H# y+ L2 S1 q* \3 c6 w                .default_trigger = "default-on",
( r5 L7 q" A% G7 }6 R" B" c  ?8 J" c' S
        },
3 O3 U1 U6 S; J4 U) F! @4 s! Q& }/ t( D& P6 c+ [& t9 [1 ?7 u
        {
& }5 c! I9 |, Z  A$ s6 n7 s* A' u6 Q$ }$ G$ u% l" U
                .active_low = 0,/ q) B5 J  O2 l7 K2 N8 @; N! }
9 a. t- O6 {2 a  U6 C2 c# Y
                .gpio = DA850_USER_LED1,
. {/ ~8 g  Q- l/ C, _5 V
6 x0 L5 Q2 q7 S8 O; H                .name = "user_led1",
7 e- @& p( o7 C2 S9 ^6 x& _% l# ]) o# @2 Z+ l1 A" o
                .default_trigger = "default-on",
: ~: q7 _/ E( o! \% o/ P2 X) K/ j) }6 q0 B' a7 Q3 n3 ~, F
        },. A/ p! d5 d$ |% c* l# F
  ^: Z) z9 [8 k& c  w" R
        {
  t/ Y2 [3 B$ \; a& r5 W* s) D
- _+ V" a/ s# r* ?: g                .active_low = 0,+ s: p/ c) {; ~/ w8 a$ R- j
# |/ z& d( ~4 l, q% g
                .gpio = DA850_USER_LED2,
+ L$ f- \; H* X! Y# H/ }$ ^" t7 l2 i9 T7 ?6 a
                .name = "user_led2",
! S3 L& r" ]  E6 z# b% Y2 y
* `5 {; Z$ o- g  c% {: L! `# B                .default_trigger = "default-on",
) h* u: H4 [! S! i) l- |* h( n" R. @* Q3 x" S
        },8 Y4 D$ m0 q/ C7 o

- J- n3 b! p( l. a* r        {
( K* J$ P* p! N, n, r$ O4 ]4 M
/ g( Q0 D# [! i' {) |( A                .active_low = 0,
$ E' C" q) l2 p' s5 u
! M5 Z: {& W4 R! K; r9 c: I5 K                .gpio = DA850_USER_LED3,
0 K3 K+ G' m8 v/ `8 Z
* W* f0 o: e8 v: k, ^- _5 n0 S, T                .name = "user_led3",
9 I+ R) g" v2 Z
) S* q5 ~/ i( o* z                .default_trigger = "default-on",9 ?# c: \* z5 }, Z& ~

) u! P" e" p! W2 J3 A8 f. s6 j        },
1 R* V  D: ?$ I" d7 M- S% g: u1 P
6 j# ]( j' ~1 R) \: I+ [4 Q        {: n' @0 x, ]. S0 `  I8 q' q

. H7 m+ N9 y. Y2 C                .active_low = 0,
7 w1 ^8 f7 U$ y( c
/ h% V; c" \# W. [                .gpio = DA850_USER_LED4,! e" L3 C" H+ s7 k- h

% A/ B4 |- I! s; T                .name = "user_led4",* E" s& [" V/ W8 N

. ^) C/ j- B# d+ ]                .default_trigger = "default-on",9 z% P. b) p( }+ I$ a

  U8 ^( j$ U3 j" Y- u+ g        },
. e. W, R! V% E* H' b2 @8 y
4 C. f- O/ `2 t! s- p) F3 f        {
7 W8 Y1 k' q' C4 Y. n  q! w! S, F# N+ r* p6 |
                .active_low = 0,
9 }8 b" e# f* n! t* t/ O- G7 T* U2 }
                .gpio = DA850_USER_LED5,
5 |) Y0 N  e) N; Z" R* d+ ]
" n6 N5 _) O1 x( C' N0 v5 E2 o' x                .name = "user_led5",8 o, p& ~% x) T6 B  T/ R

- ^7 u& }2 Y2 u! d, q                .default_trigger = "default-on",
& U1 ?/ q/ n5 j  D, |  b2 x% n8 s% @7 Z5 {7 p7 v, A5 p, [! Q
        },
- M, l# x. Z7 N
6 B( L( e( }- [. S( `; k};
) r- ?/ a9 K+ x( |4 d  V* z+ _$ z' E6 q
8 `8 o8 d% o( @+ }' t
, H+ \& i' @- g4 G- R, K  \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* V! X( a5 g+ L' P8 d! b; ^9 S/ Q# M: O
        .leds = da850_evm_tl_leds,
8 H$ r- N1 j- H) x
9 l4 q( U9 o- K' K9 @4 }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& v( x$ Q7 D- n" v, h
* A. V- b, k! e
};
3 M  d# i" q9 d. f- z( N1 I% ?
* O7 r8 z2 i$ D" K4 m0 i0 G
0 `, p" J, J2 ^
" ^: i& ~$ S) |, H- E+ ]: xstatic void led_dev_release(struct device *dev)
0 F# ^; Y; R. M9 D+ f1 o2 g. F
6 r+ T, `$ {3 w0 f. P{& m7 n/ _- l0 m" @: e

1 f! ?! j5 ~0 z' E};3 C9 N* m" H3 W8 C! ~! }

, ?+ s* I1 X, N5 S2 u  N6 [
. P9 }) y& [5 R+ H& k7 g
* J* F; r) d/ mstatic struct platform_device da850_evm_tl_leds_device = {' `& k. p3 p; m

6 K5 C0 n; S# C2 s        .name                = "leds-gpio",* S5 Z* D% ^3 S5 m2 I6 Z! n
" N  |5 u" b( c1 b/ Z1 b
        .id                = 1,
6 ~" n# _" a0 Y6 b% X
2 V% R0 m$ j  o  _  A        .dev = {' H, u+ C6 H" |7 h
+ W2 e6 ^1 b, [0 a0 d- N1 @) `+ |1 k
                .platform_data = &da850_evm_tl_leds_pdata,7 |. o6 ?& D+ Y& c9 \! c8 a9 z

! ~) s; y# g# n                .release = led_dev_release," s1 N2 V' c/ m

$ _8 o3 T3 B8 i8 ]% P0 N        }
$ v8 b/ Q& w' }
& [# U0 e7 j/ T  n7 @};
& q$ s6 C* M6 J. T4 d* e
( w. @3 r- q& M" _) F+ j1 i, R5 m, }( C

+ i* r1 g* p2 d3 e# Ostatic int __init led_platform_init(void)
; y- Y' l/ C- n7 C% P/ b% C$ f$ L* J/ [4 y; r
{) T: b" l% A" k$ C0 ]- M# k

) y, j* p0 z' ~, q  Y        int ret;- `0 c4 d) c9 ^/ F4 U

8 J4 V) {2 I5 V' D#if 0
1 ^$ |2 ]/ f: c& M7 q
! N2 `/ |. d5 d. n! J( u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 e1 l( N; K* ]- `0 O( j
9 Z4 x# S+ L& i! |        if (ret)
* p4 r) S/ v. P& ~& \- I% g; B% B) B: V; l, \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% p+ T) i& `2 c( A/ x
4 i% q) h% z- E; [                                "%d\n", ret);
( G- M$ @+ a# h
+ `, }4 H/ F2 L4 h* m6 q1 h#endif/ g! q9 V  ]3 e+ r" v
" y* v+ T& l+ \- R6 Y( }' L: m
        ret = platform_device_register(&da850_evm_tl_leds_device);
( K, R$ R" F' k. ~6 K
& X( o) W* s: ^9 W. w0 H" b( a        if (ret)
9 m- q, t9 y! j; a
# v  |' |3 }  E8 F- a+ k4 R/ ^+ e                pr_warning("Could not register som GPIO expander LEDS");
) l$ O9 _* x% p1 Q7 _1 d
$ U' \. C1 l" q0 U+ \' T0 _        else
1 p* ~3 o0 E8 O
- m, O! h7 s9 ~! y$ ]1 B                printk(KERN_INFO "LED register sucessful!\n");+ Q5 E& q% K" X, X( r
3 q2 M' M+ p  r' _, c6 m2 q

: b3 w) ^, r5 u% j
( x" ?  W7 h6 m% Q        return ret;- z  y& l% q- Z( p
( N  v0 u6 Q2 Q/ |% B
}
0 ?8 ^" U. N+ F2 X0 W  m6 U+ L: f) I8 }5 D; Z# [
; B! Y4 ]0 C5 J) Y1 D

: A9 n2 @  q4 n) ~& Zstatic void __exit led_platform_exit(void)* }: E/ N1 K: _8 C& }/ M/ z
# x- q& a, X/ [) F: M* N3 F
{3 \- y8 I' y; [% g

. O. b& _, N; a6 ]6 p        platform_device_unregister(&da850_evm_tl_leds_device);- \; S/ \+ ^4 T5 l

; ^4 ?( t) S; o- N5 W9 s$ t+ r  `0 ]# a6 r
3 W8 h" P+ v( V
        printk(KERN_INFO "LED unregister!\n");. N" Q  v3 d( b) G
! b- a5 M0 U# {, d- r
}
  b# R0 T5 C. l0 X9 q, z5 l  M  [8 A2 [8 ^' G: Y3 M5 X
) y) N3 [: X, \! z+ h2 o

( p6 H# q7 I, d8 [module_init(led_platform_init);
7 q& T, _' h, K# c3 b1 n7 h, p
& M# G" r' C& m6 O5 Cmodule_exit(led_platform_exit);8 b1 f3 }3 K1 h+ O% O' p% G; O8 q
2 e1 L( h8 L( l# P1 j; s* ~% T
1 H9 Q1 b3 W5 W* @$ ]

0 N5 f1 l7 c% M9 \1 a/ RMODULE_DESCRIPTION("Led platform driver");% e: T1 `6 r* h5 q

, z& B1 {3 H  J0 CMODULE_AUTHOR("Tronlong");6 n5 s, i1 Y; _; U1 }% z! i

$ B8 z# R! P8 ^# P2 `: e  QMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
! h( l4 b. W  ~7 h- t4 T9 L

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32/ h  G  h+ O: q
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
7 k& y. s6 `+ w; v0 Q  F ...

9 L2 c6 G$ d. [: U) J好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
. e- y5 w* q& }" M  V1 ghttp://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, 2026-3-14 03:57 , Processed in 0.045814 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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