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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
8 V9 O* L2 n7 A0 x( o/ w3 z0 B" g
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的( ^+ M% R1 d3 O/ N5 }) O

6 q4 r* Q- o- U5 v& ?4 f$ B1 [之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?' H, o8 Z8 ?  a
. ~1 ^  B9 Z( z

本帖子中包含更多资源

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

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:144 {0 d! l0 h' `
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

( T9 U. p  M1 j% }& u" m4 G$ `我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
# U; G, ^; F- s* D6 L) o" p* g#include <linux/module.h>$ F5 r9 ?! j( y. i* M6 u5 D

; ]9 P4 m; f4 z. P, U#include <linux/kernel.h>
9 X5 W' k/ l1 }; h% u
/ S) l. p- }- @1 C: e/ E. U#include <linux/types.h>, F' s# m' J2 C

; B3 @  [9 {" N; G/ z#include <linux/gpio.h>
3 G8 q- b* P1 H" k" N" T
; ]" g: p3 t; Q, R0 l( z4 ?8 F+ {$ {#include <linux/leds.h>! v( _. i5 u5 E* T" N
  r& `1 ?* r6 Q3 d
#include <linux/platform_device.h># X; r( |$ ~" X) s8 j
0 o( B# }- D4 y1 j+ |
, E0 u8 S' R9 f2 B8 }# z# K
8 Q, s1 w6 X. w
#include <asm/mach-types.h>
: X! i3 C: l' s0 T& G
# m% z5 G9 I' F; N& n! ?7 C#include <asm/mach/arch.h>7 O/ a- u5 i; Q4 X8 Z+ t  f
3 T5 @& k! I2 S* c+ v8 a  C  h5 }; E" \
#include <mach/da8xx.h>
% u$ c/ ?% P4 q0 r* R! u
% \1 L' e7 f2 G/ K& }. I0 u% T#include <mach/mux.h>
+ [* p2 b: P. |0 V4 J
; K4 n' m( a8 [. r' E0 i- c4 H- L0 N: R% j9 ]8 e* p& o3 Z
4 e* R& ^. t, o" v- ~! b* q* ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 ~/ Y( T1 ^( s9 I6 J" n
% }& W! A% d5 ]5 g
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). T7 w" f% l- e- @; j! m

1 l3 `/ z9 w( h& A* k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' h' ]8 J/ n6 Q5 ~6 A; s' ~3 l! [0 C) D6 ]% R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 j8 R" \7 G/ A* M9 w4 _6 Z; f3 E1 G! I% E
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)9 o' r  {1 r. B

; p5 J8 E( I' T1 W#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
* }8 S# B. @- S
; {, z. k0 f$ w) V! E, X
2 z2 z4 ?( T* m& O, |0 f
) c' ?* y# R! s( n/* assign the tl som board LED-GPIOs*/
; z% o5 W% G" W8 g) h( g0 R4 f' U8 U- ?
static const short da850_evm_tl_user_led_pins[] = {
% q5 R! k( U) a" I6 o* D
% P$ A/ t5 N/ z, H        /* These pins are definition at <mach/mux.h> file */
- W$ E, M- h+ o; o/ e0 G0 _; x: y2 M, i2 L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
8 v8 G% s+ e' v  Q: W9 f. n1 X* F2 z9 w9 T$ y% @' f
        -1$ c! `# z8 b4 h' E, p! `9 k

  l( Y7 D; _3 u" [5 k- t};
) f. V) F* _& u6 l, P; o$ m6 h! C  c3 ?! h
* L# h3 }! R. a' }- x

; I& a9 t+ Q6 O# s7 {static struct gpio_led da850_evm_tl_leds[] = {
2 z8 F! N( J9 b$ G8 B, ?
2 j7 A) [/ D9 P2 s        {
$ j5 b7 b) ]6 v) y6 I9 ]' z2 M
0 \1 E4 o, X& u8 k+ X1 ~                .active_low = 0,! Y, \% P0 i8 h4 L1 V
4 O, c! m7 h" L, w5 u1 Z
                .gpio = DA850_USER_LED0,
4 b' e- \+ ?* x" n1 u4 d, Q
( Q7 ~  ~$ O( L4 @+ E, g                .name = "user_led0",
( y7 T" ?2 p/ ^6 B$ X
' P+ h& I& w& y- a2 _5 ~                .default_trigger = "default-on",7 `+ X5 o# Y8 _' D7 D! b! `% Y

1 T2 O2 O' p& I8 k7 z        },
0 q8 }4 }  G. M+ g' r" l9 U+ X
. B5 y7 B' D5 s        {
; a  x# S* p& Q+ `% Q
- c1 ^9 c0 o: a* N+ m# W8 Q                .active_low = 0,
" f* F$ m3 K5 v  T: u  B4 E0 g* w  d7 t0 o) r8 ^) |3 c% d
                .gpio = DA850_USER_LED1," P7 c7 f' J0 V5 p+ Z! w1 R

$ s5 d1 d# ]/ Q* ^) A$ ^                .name = "user_led1",
, q# m0 G  \  l( V$ b7 |/ [# l" l9 ^" D0 s. z+ I2 }5 G
                .default_trigger = "default-on",
5 ^0 S# g) f' s. V5 P5 \5 J' h% V1 {+ {, |
        },
0 c2 C. @9 h0 i; @7 Z& N! D. u) I- H, R0 I
! A6 W. g; B/ Y) M) {        {1 _  s; a6 W! g! w+ O! I; a# c& D* x

# g" ~- J4 [# J7 i& x                .active_low = 0,+ U4 |9 W) o, L

4 ~4 C. H( {1 }8 Y6 j) m4 d+ v                .gpio = DA850_USER_LED2,6 x( h; _: P1 |' R6 {3 V
2 }) m: P1 _( |+ U( c) z
                .name = "user_led2",8 _, T+ G3 g0 m" c( _

$ j& u3 n) B  C! \, V                .default_trigger = "default-on",
3 s, u4 N: h  w7 Y/ f# q* ?# t+ N; @) r, B; p8 {: b
        },+ D& i; L% r4 k

: ]! f! L! D( b1 W9 u( L        {
2 q& D3 z# h# d% z: \* S; s6 ~7 g, O$ [" M# \) t) H2 A
                .active_low = 0,5 n8 T. k' B; _  N0 _
- P( w% ]* a  `, q% d; L
                .gpio = DA850_USER_LED3,# x9 G3 K+ D5 ]7 ?: M+ e' C

; s0 o* t& k5 ]& L5 ?- o: M                .name = "user_led3",
" f! U' ?$ V' ~* ^8 J. D( P
+ z  h/ G  S, _1 E) w, }                .default_trigger = "default-on",
$ y2 N) C2 ?- X3 L: [. N! C# W) I' K$ \) x! _0 Y
        },# Z; e# B6 s( r' O
1 E, _; q7 P$ L
        {- j" v: j. i8 F0 z' z8 {% O' ^

1 p7 K, U: P1 q                .active_low = 0,
' f& N/ s2 p( X9 K" R" o
4 k# \2 E: K/ _                .gpio = DA850_USER_LED4,
+ J1 W4 C& ]8 c* z' c# i; o  `! @$ k
6 Z- |8 y# R" V' w                .name = "user_led4",
+ g! j, ^1 \6 W% i
+ A- L9 O9 G# ~& z0 B/ Z                .default_trigger = "default-on",
; ~& |6 ?4 T. A+ k
8 {7 X  Q; `/ }. s& j6 ^' k+ M        },
/ i$ W( [( k, B7 V
8 }# l, C5 X. q9 U) ^7 C( I        {+ Y0 r# U$ h" _

1 j0 R  e; O; m" s/ n7 ]                .active_low = 0,
/ Y+ S0 j# X" B6 ]" A% ]" y, B8 d; T$ J# U1 C7 C  y' Y- s" [# ?& F
                .gpio = DA850_USER_LED5,
" q# k, D; l1 {0 p& [3 s( O
4 j0 T, @' B* t" j                .name = "user_led5",
8 Q' \7 J) c. D$ q* Q7 Y' @9 k3 n4 M* T2 I$ i! T3 J6 E: \7 E% x
                .default_trigger = "default-on",  M1 c" f0 [; k( i, K% ^

* ?2 |4 }* u4 b( W4 {; M        },
) r" U+ u0 n* ]# K+ c8 p' J5 p" x- w8 e4 ]
};8 U( q  E: e3 m7 S1 y: o7 g
6 l, y  Y$ P3 u

' j' W- t; r2 X
& o) L) \# ^2 J6 |7 E$ B6 Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( P# R( n. |. _# K9 Q6 S

; S: H. `4 I2 X3 J$ V$ g6 h+ H0 V        .leds = da850_evm_tl_leds," {& y' K: s- s/ e

% c7 F3 s1 C0 T& w) Z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* R+ t4 G5 B/ M$ {! W# O
( Z# _% _# @/ N' Y! }  Q" U};
/ m( Y( A3 \! D1 S% R$ ^- Z  a* h7 A5 u3 s
8 d7 O% W& l9 r. z

% F+ \  G- X# ?& Mstatic void led_dev_release(struct device *dev)
# }9 P- ]- j! u0 I" M9 f5 V9 d6 O7 ^7 h, G. K% V$ k7 k5 H
{
$ U0 @& s' _0 t' g& n
5 ~* M4 e' _4 N* v! l- ?4 ]& ^};
4 J3 S% u9 _( i, H$ c
% z! m6 P1 Q$ I3 c6 x
/ }* u7 n: p  H9 a# j7 W+ V8 X9 K" g) p" N# \, s8 B
static struct platform_device da850_evm_tl_leds_device = {9 j1 N1 q8 y. ^5 X9 M- r
1 T2 L' S% A$ ~  H+ V: t$ {
        .name                = "leds-gpio"," X) e7 s' S# g$ u% N" I4 k
9 y( s# @6 K5 }' v, u
        .id                = 1,$ {8 B6 K; |3 `; Q, L

- \" ^$ D2 m0 ^- d        .dev = {
, a0 n. f( l1 L6 V+ |
4 Z8 j# M- _3 _/ n- G( v                .platform_data = &da850_evm_tl_leds_pdata,
; ?7 u9 {  S4 t( s- |' f, l+ N3 t
                .release = led_dev_release,* y* q  Q  d5 ^1 l) J5 F3 X$ [+ p
$ c4 }: S- Z2 F9 `% `
        }( Q, _8 |  F3 q5 Z2 g

6 W2 R  g  U" Q7 G7 C/ ?};
4 R( Q3 r' \  d/ H- f% N
8 H2 ~: \: [5 W6 l3 A. [* C$ Z+ G
& k9 H# s4 D( u* O$ x
static int __init led_platform_init(void)2 e" b0 k$ B$ Z$ a- I4 R; K+ M

; x( R6 r- E' Y# `) B' H  ^# j- Q{
5 A, u3 o2 y" Z+ n( G" B
2 M' @% }1 k. @, ]# x        int ret;2 o1 w# U. n0 z( O1 ^

, I' |; p( u6 j7 n#if 0
1 L) B8 W. z0 D* G* C; J3 U+ j9 q* e+ B/ E
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- _' ]1 ?6 X3 O( g- H
; o6 o/ h' o5 T+ v5 v- U. n
        if (ret)& S  V- ~$ |* p! ~4 u

5 C+ q+ R* v7 [+ S+ b$ |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ }; L7 a: |& A; Y5 v

5 G9 q, [: l' @9 r                                "%d\n", ret);
% S5 ]$ e1 \( s, V3 W( d4 i
% L% h7 L, X+ J#endif
: I2 C1 e: O' C, j, _1 ^: t$ i4 v# o
' A" U6 P7 H; s        ret = platform_device_register(&da850_evm_tl_leds_device);
5 y) @! ~, R8 w% p! t. @7 z4 n* |( ]/ Y: A
        if (ret)
$ h7 L) E9 T5 ^) c( J3 F) ]+ r2 G6 v+ w6 D) c6 D6 E% k
                pr_warning("Could not register som GPIO expander LEDS");
0 K3 \# `' g1 y/ |% w, C! I$ F! W: U: }( N. r* `
        else. c5 G2 u/ D' ]9 T- \. z

* z+ `; u4 |9 ]$ M( T0 o- l                printk(KERN_INFO "LED register sucessful!\n");3 q" R8 \; i% V, T6 G9 S2 u( w

2 }1 t5 U7 q- w2 U, @  m+ l+ W9 c6 V- u$ p) {

  w" Y! R# o% L. o        return ret;
; R- ]' }; X$ X
# c% L& X& c3 ~4 C& N* |  J}
3 Z8 C, Y, ?1 k0 }. f) z
9 L; D) t. K/ h/ V
! T  j6 ^9 }+ P0 w4 k( f/ ?, V: k% y* ~
static void __exit led_platform_exit(void)
6 t3 C  q$ j) E+ l4 w0 `( C# D: q2 q3 \8 w
{
8 D" Q+ y2 i3 S, W( A
1 C$ J* A3 J; {( o4 R4 i        platform_device_unregister(&da850_evm_tl_leds_device);2 [9 l' {! v* g5 r% A; I
( k/ f2 S4 i+ \( u/ f; ?0 B1 E# r
' J' A. P8 X* T7 {

# m; J5 S0 I7 s% ]$ P        printk(KERN_INFO "LED unregister!\n");
4 G: L) @, |  N8 _
) @8 m. {- t3 Z% u4 D# c}; [+ \8 k% Q/ u1 S1 |& ^$ X& j. l

' x0 {# H/ Y8 y( ^
: x2 ^! U: N) m
- q* g# b: G2 |. A9 X- Amodule_init(led_platform_init);# X8 z4 Y) \' Z4 `: W6 O" n7 H
& ?$ O: T0 Y$ P" y  }/ X
module_exit(led_platform_exit);! }8 n; h: Q5 Y1 t, P, K

/ |9 b+ J2 G9 a
8 n2 g$ g/ f( S* [- u9 m8 P: p8 D# C, @& H1 R
MODULE_DESCRIPTION("Led platform driver");. v0 E! O+ C- ^- D& c0 J. G
8 I$ H% S: B/ ^; r9 t( a7 N
MODULE_AUTHOR("Tronlong");
' L9 V1 U: i; e/ E4 O/ k& J! w3 P$ g5 {1 k2 E
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。3 T1 J/ q$ q. M: F) W+ a% z

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
0 G1 N; B5 s' w1 {' d7 r; o您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- y% s$ L) k- t, ^. o' x ...
3 `! {1 @& a1 G6 f( e* U1 G2 s% U
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
" w0 m7 X( G$ ]# m4 Rhttp://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-5-8 09:01 , Processed in 0.044940 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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