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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5704|回复: 6

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
发表于 2018-12-14 09:13:56 | 显示全部楼层 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 . H6 h5 p7 b& X) v4 F2 d9 l& G

9 M' g. N! ~! f) b2 f请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的# ?' y4 B4 ]5 e/ [
4 t  K5 t. m4 s& q9 S2 j8 b
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
/ W$ B% f1 q' U
  W) s/ K& j. x3 ~1 ]* n" g. V

本帖子中包含更多资源

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

x
回复

使用道具 举报

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# g8 Z. v0 U3 B8 e( U* u+ K; p- ]
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

; H+ m- }$ y& z我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:. Q( ^3 C* \3 L3 Z
#include <linux/module.h>( T/ \1 m3 M0 w9 [

: }, n* F8 Y0 n, b' @6 a#include <linux/kernel.h>
7 P, Q; X* Q& K1 K6 e0 g' X5 ~$ m# B  ?7 x# [
#include <linux/types.h>
% W: T  G# H& a; y1 P; O4 q0 |) f4 q4 c# T+ F- T9 V. {4 L
#include <linux/gpio.h>
( t; z, Q$ _+ d2 `
  ?. Q& \' I. K5 `4 o, u) p1 K3 T#include <linux/leds.h>
' ~' W1 \& {  F' `! `- O1 @5 Z. L
5 m5 S# F( K* P9 i1 ?$ q#include <linux/platform_device.h>) I6 `4 k7 D( b. ]1 m# y

7 L+ ?: o) P5 |4 `' v- Y) r% j) B% [$ S( g, z

, r3 h3 C0 c+ T9 M$ v#include <asm/mach-types.h>; [+ z0 o2 ?8 A& X7 X( G5 D

' _5 m/ Q" k  ^2 F  @/ X3 y. q#include <asm/mach/arch.h>
2 @$ ]0 ~9 U* Q9 ?% U
: P7 l9 g5 Z" f, J#include <mach/da8xx.h>
, d4 u+ ~9 v3 Q( ~. `& Z, Q0 ~6 `. c( E3 p' a& J" J1 n7 s
#include <mach/mux.h>
/ _2 Q. N' c  Q' V2 U; h8 t5 b& t# X1 _* i- w* Y0 A

3 W* |7 S; j) [2 O0 N/ c) A( P8 v& R, J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): _5 M* m+ Z: o5 r
# D% \% S+ K# G% I" P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 F8 ^& ~% W# x* t

  C) V, K1 P& F4 D% T; a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 I" d8 b5 F8 a0 y: H

$ [) H3 b7 Z- B+ ^( A6 F- i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# z4 Y6 n% k; b& n, V
* y7 M, g. @/ L# q
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
$ @8 D2 P. N4 L9 R: C- V+ B+ N6 d: F
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)3 I4 d& t" e- {; K  M

# Z1 ]( H. ?" H# E
6 w5 b* m8 `: o3 D. D  V
5 U; N( y) W% V1 n5 y# Z/* assign the tl som board LED-GPIOs*/
: ]# Z0 U0 }/ {/ T
  {3 f, ]! c) G. ~" _: ^static const short da850_evm_tl_user_led_pins[] = {& m+ O1 `& H* |2 g7 ^5 ~
) @5 `! x& S2 G1 V; _; \
        /* These pins are definition at <mach/mux.h> file */. B; G6 U& Y+ I2 {
7 z1 L. q) x+ m$ i& ~
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,2 r- b. o/ f+ G8 U5 s# s4 V

" ]& D2 M, @7 V! k; x0 m$ a        -1
  o! ~$ P+ V- q: ]6 ?& w  A7 u
( b: j! ?. N; F};
# e0 x/ [1 s8 x+ l2 n' k0 K$ n* [& h; Y9 n, A5 r; W
1 [% W; |7 O& r# C5 Z1 ~% v
$ y9 e* ]% |: c
static struct gpio_led da850_evm_tl_leds[] = {
" ]2 a& k2 h6 d! R  }+ p
! [6 I& ]0 ]  z+ q        {- H0 D, R- k% m0 y$ G( L" |3 f; D

7 |; O! Y7 U* G$ }, |9 p% \1 W. f" _                .active_low = 0,: N0 i2 d' p/ T, G. r
% |6 p9 p! J9 L9 A3 O. M
                .gpio = DA850_USER_LED0,3 u3 k6 |: E  a2 W9 J9 u
! ^. C# n$ F  G4 @7 |5 {( M% R& y
                .name = "user_led0",
) O  `% m' B4 A9 D' L' \0 @4 R- j8 y$ t8 i$ N
                .default_trigger = "default-on",1 V3 R4 [0 o  P5 @- F- c
! @& U% E: V' u2 ^
        },0 i- u- o) s( J- \% y( S
8 j, J+ b% [! E8 H8 c
        {6 u$ K7 c/ I2 j7 H* v! w4 m" W
3 x( S: z/ [- j7 m9 g4 |( j
                .active_low = 0,
& L8 D+ t" v: H2 x' f" _5 N& C# D. c3 C6 R, M3 |
                .gpio = DA850_USER_LED1,
: Y5 K; H+ @3 w& y4 h& R$ h
/ ]9 z# W! K# O/ \+ V                .name = "user_led1",! L) |4 @9 E1 Z  A: |
6 M9 I6 ~8 y9 V4 W: k1 N2 D: k; N, f
                .default_trigger = "default-on",; h6 T2 s1 o6 x2 W% @/ @! E( u

4 t0 }% S5 q) j! D3 c/ D# N3 }. C        },
8 b0 O( m; {5 \; J6 q+ ?7 I) H
; I  X( B& w! F* r! u        {
& Z4 L; _; M9 H) b$ s" Y. k$ I$ Y' R+ m% g
                .active_low = 0,
' R6 F$ V! S" e+ k7 s# r8 c( P7 S9 }& m- D3 K6 L/ V% d+ K
                .gpio = DA850_USER_LED2,. l/ Q0 i  Z  r+ P% F& h. S
8 m$ J8 |# q" a
                .name = "user_led2",
# T3 t8 m' Z! b; {  Z3 E
# L8 s/ D4 [$ \7 `! [# w6 H4 Y                .default_trigger = "default-on",
" D& a$ E, \8 K% ?! r) Z# _6 Y
) S- l1 v* ?6 J4 g        },
+ R( p5 J. Z- R# f+ l1 A, l/ J3 g! Y0 K1 W/ b1 C8 J
        {
* E* b5 K" G' g) I; [
3 y' e/ i) X1 Q9 D) u/ x/ t                .active_low = 0,
5 l. D5 J- K; |2 ~$ D* E; B) W3 R* x
$ o5 B; N/ R) M- ~/ b                .gpio = DA850_USER_LED3,
  A& Q" r5 q% o0 K
$ I% M: T" c, r" r- l# c9 u                .name = "user_led3",9 ~& F8 ?8 v9 ~0 }: Q

" ~: w3 |, }! m/ r! N                .default_trigger = "default-on",. b1 N5 x' S# M4 H8 O% F

7 E, J9 J& k1 r& t        },  y2 U- g, U2 n; ^& W! c
3 o* b* k% O( s+ g: v/ H) f) X. c
        {' m, B9 m. [8 L& _
' l" r; b* e5 r; V- {
                .active_low = 0,% c2 d4 O% o7 P! W! g
, g6 s1 N; f: N2 w# \
                .gpio = DA850_USER_LED4,
6 C0 A5 `: ]; i/ E" X! ?5 d' J6 F0 z. ~7 Y
                .name = "user_led4",- G3 ?: T/ W7 J& [6 D/ T  G. N
) L8 P1 a5 y5 A, g
                .default_trigger = "default-on",
+ z+ t+ J5 n: v! W+ C% i# e- i1 Y2 F
        },* J4 Y# h" J2 U+ O9 \# G

& c  h8 [( I- }, Y1 T% u! Z        {
& W: z- p7 u" b& ]; j2 z# S4 Z$ @
0 n4 N0 h5 Q$ e, z) c9 r0 d$ R4 X9 x$ l                .active_low = 0,
: C$ r- [0 g! M! F! W1 j  d' A- W, _  e* T' e9 f9 P: J
                .gpio = DA850_USER_LED5,/ j$ U, P3 k, ^) t* U; z
% i8 P) G, ~. A0 B# W# `) f$ \4 a; o
                .name = "user_led5",! N& m  ^8 P; [4 @2 i. L

* Y  M% J; I" n3 D( ^3 ^                .default_trigger = "default-on",) e4 V  r2 q# E/ N# @# x* N! ]" @
( k, s/ @; E, x2 \. p$ H7 ]
        },
4 i+ o! X+ |' J9 Q' d" O4 N
! A! c0 V+ r, n; p: i. p};
0 J5 J0 A" i7 J& t
/ j1 E) Q+ n8 a# k& ^4 |. N2 c- I  `2 b9 i/ j* K. W( c6 }% ~
3 f8 P! H- s' X/ w" h8 t8 Z6 v( h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* {6 E: n5 D( ]6 p
) s0 @* a! k+ _* x
        .leds = da850_evm_tl_leds,
* U5 ]* F, \: y4 |- t. u
( ]4 Q# j& N. j9 x- @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 q, f. j* T; a
0 s* R, {; |% m; d9 i' K};
' C5 o; H& s" }* V  z, v7 _! @2 L1 @" H! W! {

. u2 ^' |" i; S! V- q# X& P; ?8 G" p( F8 g. X2 ?, u7 o
static void led_dev_release(struct device *dev)1 C1 Q* u" m, J0 d

$ ?- ~9 w) j9 ~+ y- D3 i{
8 ~. D. B7 R/ U& I
9 v3 I4 [' |3 S$ y6 H- D# w};% Y& _* t4 ~; n2 k

& d! x$ l9 p& J+ \7 x- P9 |7 q$ G" S1 }, ~: _3 Z

. ]- x  n' a7 C2 xstatic struct platform_device da850_evm_tl_leds_device = {4 ~. E( K! `8 O
+ e6 W; ~2 x2 v/ f- I
        .name                = "leds-gpio",
* |) g0 @: Z' i$ z0 Z6 g& v* I* @* q0 Z5 N4 L/ R
        .id                = 1,
. ]8 P: z  o2 Z0 _
# t8 a* H& L, ~" _: P# O        .dev = {7 M* S/ V* \+ [& Y5 P# v
' W( U8 [8 S* ?  F
                .platform_data = &da850_evm_tl_leds_pdata,( {$ V+ g1 ^* x; h$ a$ N* c

; l8 S3 Q; j( m6 E$ m/ ?' o                .release = led_dev_release,# Z, a5 _* w& a+ i. z6 |8 E2 r
6 W+ K" K9 a8 }( ?# {6 F
        }
/ E3 y: ^5 x& t$ W% y' M2 E5 ~& k" S7 {+ i4 x! V9 l( f: e
};
/ y6 J4 V! P( P. t$ s+ }
! H) `  Z* u( A. a6 w- V
% d6 h; O) B/ y, I; `- k. q
. o/ U6 n$ ?% D3 jstatic int __init led_platform_init(void)
! A' D$ @* Q" H$ y4 [0 V% m" D' z. m7 G1 f
{5 U  e) W* @# l! T& g, c+ G' f" V

6 }8 w( S% @1 d% d% T        int ret;
/ ~! n. Z0 D' J  ?& c3 b1 W2 a' D0 w7 U
#if 0, v3 O3 t; I) S1 U

" {8 D# u8 O6 u7 K/ [- I$ [- e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 a% i5 \3 n1 L

  H8 e# F& |" _/ Y4 D$ Z/ v        if (ret). |4 Q) f7 Q& m9 c( D
) Q: i# H0 }5 u9 u, C- D2 g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 `# e9 r5 V$ U/ T& K
+ Q% j+ K  O7 W  x
                                "%d\n", ret);
9 ~( [& Z+ ~" u1 s4 r- }9 z  b7 c% x) v: t& c
#endif
  x$ g3 @* S. M+ C" o3 W& e4 \  U3 b- U2 w
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ o& I- n) L! U! D7 g8 V
. U: B& A2 K6 W        if (ret)
% [4 Z3 M# P. O. P) V: O. ^) w
8 g( G/ ~! \8 V8 k; r  A0 K7 P                pr_warning("Could not register som GPIO expander LEDS");
* B4 ^, Y$ O  j! C/ E, n) {5 G( z: ?; w- ~) P
        else
% F! M& X* m/ f
0 c( [" I5 h0 J0 F; |6 U8 L, [                printk(KERN_INFO "LED register sucessful!\n");
! t% B! n% X* E
0 p# k( ~! \1 N: D& S
4 m& @/ X' v2 ^+ o1 R+ x+ o2 s, t8 j9 ^1 t6 Q1 a
        return ret;
$ l- I' S  U) N* _) n6 f6 S- A4 O% ~/ R+ {$ O  N9 c& O
}
+ D( B1 b+ L- ^! o+ Y  F9 l" j) r( D; x( g0 t" H/ P! |5 |; P! A( {

3 z) e- h1 K0 w# \( T& {1 ?% Z- S" P6 i4 ?% J/ \: U
static void __exit led_platform_exit(void); ?7 V2 d0 T; ~+ |4 N& `
, o& H9 s6 V6 _1 b1 W
{0 m  r! z/ `% U( e. c5 h

% m& h/ e; F/ E& Z+ C1 m        platform_device_unregister(&da850_evm_tl_leds_device);
  \0 }1 h1 k3 N+ U6 B
. g( V, k0 {# Z
* B5 I  m0 C. h. j; e
1 J8 W$ ~9 A- O' y# P        printk(KERN_INFO "LED unregister!\n");8 y3 U) e2 V! ^' d4 x
( \& L3 B  f7 h# M4 U1 l; X. o
}8 M- l4 C3 F; z5 h2 U: N' M5 w
+ d* V8 _7 e- D6 |( m" {% `  h
. @% W" N$ q/ K
3 Y0 p6 [7 R& k; L$ W- O
module_init(led_platform_init);
% u- T  O; B/ W7 q; @, i9 @( b) ?8 [+ x/ _, P
module_exit(led_platform_exit);7 d6 x+ c  N5 z
7 |8 M" ?4 u) {3 F8 u1 s/ U

" y9 |8 E9 D6 n% l: T0 V" c
4 U; b0 B7 X) k4 i5 D& nMODULE_DESCRIPTION("Led platform driver");; u9 M" u* d4 x" v
& M- D2 c, X0 M
MODULE_AUTHOR("Tronlong");
1 A$ O; b0 o: L% b; Y1 ^
1 \9 t. B5 S7 Z7 DMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
发表于 2018-12-17 10:32:23 | 显示全部楼层
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。2 I, |  _4 s$ P  H: M0 {1 m# f

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2018-12-17 11:32:31 | 显示全部楼层
广州创龙莫工 发表于 2018-12-17 10:325 Y3 ?, O" h0 R
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
6 D, e8 }* [9 [6 f ...
5 R8 ?* Q; l1 o
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
发表于 2018-12-17 17:24:29 | 显示全部楼层
嗯嗯。可以看一下我们的视频教程。
) ~# `) H' ~% c- g! j* {8 `2 r0 I) uhttp://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2018-12-17 17:29:12 | 显示全部楼层
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-29 19:17 , Processed in 0.046085 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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