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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
5 J$ z% k( n+ C! b( P8 R, c* @3 L# i2 c7 j  P. f5 l( ?; e; ^4 s; q
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
: M6 z0 `1 n1 @0 H$ X9 H: F7 |/ B6 O8 _) i# y2 d/ e* i9 ?+ p
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
  v2 t, v( w# A, Z: S: ]( Z: L4 G% z( a+ H: _

本帖子中包含更多资源

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

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:14' U- J' G: V! i% [, r& ^! V
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

7 ~: W5 q& {/ G2 D我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
3 y0 H) _6 [2 g#include <linux/module.h>' v4 G1 `% P1 g7 T$ F- ?
# l5 J: m! H* L) B$ E; x1 y
#include <linux/kernel.h>/ y) o, b# R" N# ]0 o5 \

. w2 Z' W2 S! V( m* Z6 I& j#include <linux/types.h>  v) W3 Z& K+ d

1 ^5 s* F; j3 D* a! w#include <linux/gpio.h>
* Y) F6 `8 B* T0 @. H7 P+ u. h3 S8 H/ m) u, k- K. i
#include <linux/leds.h>
! R. Z. F3 J. F( ?5 r  X4 |7 G% |2 C- `5 L  c5 o- n( \7 L, ?
#include <linux/platform_device.h>
' X1 e8 X. _7 m( p0 Y. M
3 v# e0 u$ z. I' L
5 O; Z" q7 Z, i( ?$ m+ U) d+ u1 M5 L8 q8 _; \1 R* |
#include <asm/mach-types.h>9 J5 T; K) i* Y. t3 `) l4 v$ {
% ]& R) S6 c- Q( e( H4 _: k
#include <asm/mach/arch.h>
* r( h, r6 G. D( k9 w
$ ^: a( ?& q9 q- ]6 z#include <mach/da8xx.h>2 L/ r3 B9 h$ C1 j7 t/ f
% X! V+ s% i* I5 M% L2 g  e
#include <mach/mux.h>
# u) ?- E3 B; J7 Q: F+ M1 ?; x4 Y* X9 H

1 i# Q- B+ X7 F+ W7 x5 F
  X& i5 m: u) ^% i5 x0 S! t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* n4 v: Z' Y0 \1 q9 J- L
4 U- E$ P5 W( w3 ]0 x7 h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); j- k6 {. r  l. z. B

& i( u" a, H* G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): n7 M) m5 q. ]6 d
; w0 E7 G/ n7 V' w2 ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 c/ Y1 r. L/ W: U4 S# o! ~4 l. e/ y1 ^& J
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
; @) K2 v7 B& i
+ F* I3 B! Q! Q8 H#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
, V  U, ?2 `: L' v) w# |2 _/ j) m; p0 j: d3 {7 v1 [- U2 D
# Q& G& t$ J' ~0 _6 d2 x& w" Z. L
8 H8 l1 B8 o' ?! W
/* assign the tl som board LED-GPIOs*/5 U& c0 o; E+ u  M  S4 N$ S: n
4 L  T2 N5 d  |" G
static const short da850_evm_tl_user_led_pins[] = {5 p1 C' \& _7 R/ \2 g' C

/ E- c$ l# T" Y) r        /* These pins are definition at <mach/mux.h> file */
7 b6 Q" h6 Z; F6 F) T1 y+ y& N5 ]" }  r7 S; C; x1 J) t+ a5 ]. |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
) R) L8 o, L1 l! K4 i: r6 t8 P5 ?0 F5 V& S- t9 C
        -1
+ g% Z  z' y, z2 g1 q2 J2 m, d5 [7 Y# e5 x% x8 [* X' g
};
& M1 y$ t1 i; v& L$ c8 S) p
% i8 a! l( \; G7 r
; ^  N0 \8 M% Y/ Q% t/ G
" M: m' n) K" I+ astatic struct gpio_led da850_evm_tl_leds[] = {
9 }' ^3 Y0 j# w# Y& N. Y
# K/ z, D: E, |; Z3 n7 R9 Q        {2 Q/ e0 Y' g1 W

+ e  R3 b) O* V1 d( o                .active_low = 0,! A: _( X. @7 \

1 i& R4 _* W" a7 S1 m                .gpio = DA850_USER_LED0,
5 U9 ?, b1 ]# E3 l' I, m  {$ ~# h5 X0 ^8 ?
                .name = "user_led0",
. c. Z  E9 }; J; m1 d- p, g8 ~: T! H* i5 |
                .default_trigger = "default-on",
* }9 K; e% U: r: l+ b2 y5 K4 S4 [# l" B7 z0 n
        },
" X& Z) g& q% O0 _) V! x5 U4 a- @' X7 n
        {
  v& d/ B( m/ v/ Q8 Q& F0 y3 Y5 ?8 A6 N6 v; j
                .active_low = 0,
& `) k4 N' C$ w! z
* H& S. T2 t! a9 z                .gpio = DA850_USER_LED1,0 f' ]- N! X# j  {3 \9 c
, i0 O7 l. W' y$ h5 f
                .name = "user_led1"," d# A, P/ P/ Y5 H; T

" S5 g0 o6 z/ R# _' e' M                .default_trigger = "default-on",) Q4 D+ l9 v' I  x: J+ q9 w- G; ?

) E4 e4 C9 o, D# W- P        },
0 p$ B% d1 S- l/ O; h$ p$ {) C* U* R% A( i: [1 s, k$ U$ j7 ~
        {
* m) O5 M5 V; ]: w
2 {/ Y5 O& d1 n3 i' v                .active_low = 0,) d! T1 }. Z' K6 Q1 i( T
( S9 x8 Q. [: V. k$ t
                .gpio = DA850_USER_LED2,
) o3 B! P# j8 M1 w7 _( N; ~7 k; T0 r; B
4 ~8 @/ a, D# d* C. s                .name = "user_led2",
; u2 U& u4 z* k8 m5 c4 I
# v" j' b' X5 S1 L                .default_trigger = "default-on",
1 m+ d6 n5 w4 z0 |- H: k, [0 K
& j3 J4 P4 O7 i: ^        },
/ W  ^7 p2 b# m  \. T/ P  A) X" \- l$ P1 f" P) d
        {
, L# R1 k! T$ D4 \
9 {  k2 f$ w5 |+ e! B+ d  ]                .active_low = 0,
0 I$ ~& y! l& W9 G' ]# o1 H
4 |  K" m  T# G6 r                .gpio = DA850_USER_LED3,
5 k) N' f- K$ i, S( y/ w. K$ C3 e0 k$ z, z9 P7 \3 k6 y! o" e
                .name = "user_led3",1 r! d- N+ y! z7 N! }1 R' X
( y' q) R, q) `- R# B7 ~/ q$ v
                .default_trigger = "default-on",9 S0 _' O% R5 _/ }" O0 v

0 j( ~! w/ z' H$ w: D        },0 h8 f; o: o4 y) L

+ Y6 _; ~" s* ?7 Z        {# M. e0 U6 S0 [0 ?* F

9 Y7 k: H% q6 \# w/ N4 v                .active_low = 0,
. Y, o" Y! [& H. H3 f
9 M3 W  {. S. J# c2 r$ `. w                .gpio = DA850_USER_LED4,7 u! B7 |1 x- p& Q+ q. a
1 n8 q/ T; f) x* O; D2 |* b- Y
                .name = "user_led4",# I% c$ N0 z, w/ }7 m/ K! O$ G

9 v) k; @( A1 C& v                .default_trigger = "default-on",
6 X% Z; |8 \4 Y  x1 n# `% A7 R/ v8 t* f, a- ?! B
        },+ I7 n$ @* e! y; O
% c6 X% b5 f5 K
        {. Q/ X. h, j! j; A9 k
" M" \( @9 {- E2 C4 J% W' t
                .active_low = 0,. k  Y5 i# D( B7 c5 {6 F# P, T! w9 x

, Y) B( t5 d3 R3 y                .gpio = DA850_USER_LED5,
: I8 u; c9 S: @6 C$ V: E. e) M& b/ V5 O7 b$ X
                .name = "user_led5",
) |6 ?/ ^( e: f* L; ?) M4 [% K
/ h: u8 N) f! \* k" w0 c                .default_trigger = "default-on",
, V, |, {. q# `0 z9 v- ?$ Z
6 b+ M' g  c/ L; c8 f        },( n5 p" c  P; u
& ~9 ~* X2 i' N/ j! M) p
};
0 v7 k4 V- o( n2 D% k
3 ]: H' b) g$ ]! o" b3 b6 d: F7 v  A& l$ D) y/ E

" `+ H' }: n+ C- Y2 Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& D2 H. v. B2 f

6 c$ O# A) |& t3 f        .leds = da850_evm_tl_leds,  ~' C" Q, \1 A* w' M
+ Q, w, S8 f5 H6 o9 w& x0 H* A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 f; |4 `! B, s
' [0 \3 t+ _% R5 B8 g; x
};* I5 P2 V6 k, ^( h8 {9 m) F

; u9 R" U4 a% R
) O1 H1 ?% ~! k$ ?) P' I* G/ n. w+ H/ ?: Y2 }6 g+ _
static void led_dev_release(struct device *dev)
  o# F* q4 ]: {& B8 m
( c: g2 F3 o' C3 p{0 z/ w2 f1 M2 |0 y& c- Q8 o. f

) P! b3 k1 K8 F$ ?8 K* Z};
' A$ C4 \- |4 p$ C5 k8 P2 H+ l% P/ u& e! ?  N* n0 A! X8 U  p4 Y

" J0 r8 D$ I; Z  D
8 ]1 R4 c) f: B1 z3 B# V$ h0 W! U# f) gstatic struct platform_device da850_evm_tl_leds_device = {
( `8 @! R5 k( }
7 d' B- r7 R: r4 }! e        .name                = "leds-gpio",
8 ~; t! J; G/ m% ]: S9 O) h& K) b3 _/ `8 e/ C
        .id                = 1,
9 J) k: p+ d' s6 o. k8 j/ f; I! D) e- Z4 f+ u
        .dev = {, ]3 h0 X9 q5 M# B1 b2 G

* |* Z9 M" w8 }. u; O5 X7 A* Q5 Y# }                .platform_data = &da850_evm_tl_leds_pdata,, \1 o( @! G1 ^4 t: e6 S

' ^4 a$ J5 C5 l' [0 R: ]                .release = led_dev_release,
8 u0 C" N* y- Q  P5 l8 W" `% w  l- J/ C& l" P, W  I4 U
        }4 z, h$ c9 S7 y0 a
# h9 T* _8 m# `" p- M* w5 O
};
. K* `  }- @# Y  E; s$ P' M9 W, r9 z, }% l% J
) |  S' }3 q" k

1 K$ S8 |0 P( I2 ]& Ustatic int __init led_platform_init(void)  j! P9 ~- w) C& v  R

6 e9 C2 Y( h6 F* L/ l{
1 T4 }8 d& P" k. @' s& J7 \% h8 \# R% ~
        int ret;" e3 D3 L7 ^( I  O! X

( A' P$ f. q, E+ t#if 0' G* o& Q' a6 j) s. x5 U: X4 {
& [* X8 W- r! \" s" Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ ~8 _. A5 Q( L6 [5 {

; p) K0 K8 [" a5 F$ Y, S0 y        if (ret); l+ R3 S5 u  K+ x. a$ r3 [" Q' r

" @! r3 t5 \4 W- f' u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 F6 o0 X8 b$ u! C3 |  p: [& _4 J; p
                                "%d\n", ret);
& E4 }+ v2 W$ A$ h6 \: R# F, p9 a# }# [2 G! D+ S& P$ M
#endif3 m* |, Y7 A! D1 ?) q, q- z

$ y: q% \0 C% z. m        ret = platform_device_register(&da850_evm_tl_leds_device);/ C" T! `9 n, I! f" t; J
5 u  O" \3 @6 u3 `- c
        if (ret)
0 ]4 Y4 R! U. m1 [! @( ^- T5 [
2 Y* F/ U( o/ o- K                pr_warning("Could not register som GPIO expander LEDS");
5 U! ^4 g, ]* U3 n7 q: X1 m+ D3 ~8 O
3 M; y8 `) y! g1 y6 W: `        else3 c$ U7 o! i) V; J. m

5 i8 _0 s/ V- B# {  S% }/ C                printk(KERN_INFO "LED register sucessful!\n");8 d4 S( e. @; i) z2 r) k/ K8 K

  i5 o7 P( E; x. G% n4 ^3 U) I1 o5 |4 B7 A4 h
( V" O/ i$ K" g! Z; W% i1 A) V: S3 p
        return ret;
+ Z0 E& i% `* y; F* N# R3 @/ g8 P; K. t) f
}
% g/ P5 j4 f7 x; B- G' P: c- A6 X* U5 K% S  q" @6 p  E" o0 _
7 R8 g7 y* M+ s" j5 s

! k( O) c4 V6 ?' Ustatic void __exit led_platform_exit(void)4 d8 M8 k& l" k

7 V% ]' p0 ~& {{4 w7 ?, J& v$ z3 ]$ V
0 |8 P) z# m$ \. w' l9 ]
        platform_device_unregister(&da850_evm_tl_leds_device);
2 k! k; P. L6 f! s7 s6 F# C0 J- y3 k% \

3 ]- j# C; \2 p! L
/ u- c4 @- z; b. N7 M0 j: }2 }        printk(KERN_INFO "LED unregister!\n");
* @) {3 t0 m$ q
) Z+ L0 ]( |/ ]2 b) h2 Y}2 X' @6 X. ^3 @! Y8 P2 z: ~' h0 Y
% m7 _' q" I8 i& O( f3 Z* n

+ ~) d! X" _" _  U" Q  k* ^+ Z8 C
9 d* a' G' w, X. g( L5 Xmodule_init(led_platform_init);- c" D1 U1 b* E) j' [
2 O- o2 Y  Q4 \3 ?
module_exit(led_platform_exit);
5 ~: t/ L2 t0 K, t* Q# f5 ^! P% v
% r4 F' m  p; n. X) F. m% u
4 o  U  Y% O8 p: ]9 ^0 l4 {3 [
0 S; D" z+ h8 ~; EMODULE_DESCRIPTION("Led platform driver");
! X  a/ i- m  v. q  a3 {0 P, g( z
MODULE_AUTHOR("Tronlong");
# H& ]# k- F4 S2 P5 ?* N% ?* i3 f7 m
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。/ t7 T/ H/ F7 g) t

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:320 K4 H0 W# ~0 Z, E6 G3 A( u, b
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
8 {$ a: @5 y! I- H8 h! r! Z ...

: b* P2 ~; F+ g6 G好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
7 m: o% s7 [" u+ Q7 _, Nhttp://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-28 07:52 , Processed in 0.050355 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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