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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 , o3 N& Q) D% \% A& |7 M2 n
1 @# q% _/ }8 E: }2 p
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的4 b4 M2 q1 m7 s% C; N; G# L3 ^/ A1 F
9 Z) y! @) K5 f+ z3 N
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?  q* v. m; F/ Q: q3 U

2 \: K9 I8 o' P

本帖子中包含更多资源

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

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: d4 p' k' @2 D9 a
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
6 n  v9 e  ^: |
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
& J& @0 W, x5 X6 L* Q0 v#include <linux/module.h>
0 A2 u3 |' t/ y& o. b! H5 n
8 ~- j" @% n: U#include <linux/kernel.h>
3 o5 k; R7 f! }2 J/ I; Q1 D' v6 @5 h' D
#include <linux/types.h>
. C7 t& [7 B- Y& s  t3 k9 G# H& T) v' I
#include <linux/gpio.h>5 n$ N' m% v" m6 C! Z
3 E6 x$ }/ S1 g4 M: \6 Z
#include <linux/leds.h>
# R! S; a4 `) s# y6 [* o( {7 d9 U# y" E$ Y% b% ~0 K
#include <linux/platform_device.h>
/ D+ Z; }: W2 X# V' G# X
7 D0 j' z/ n# q  Y/ v& o& [; _8 o) K! n
5 C5 I9 ~  w) a) y# L0 q
#include <asm/mach-types.h>$ Q) c6 g; b0 T) ]/ t
* w, S5 L# R9 T7 L
#include <asm/mach/arch.h>8 b$ A2 d) @/ t

5 m. z& _& A* [/ K# K; S#include <mach/da8xx.h>
3 c* y% i1 {: c: t  H8 s0 s9 O2 G/ A% l
#include <mach/mux.h>6 Y0 b+ L8 v1 s: f& a6 V. v2 ?/ i
9 Z; Y9 E; a& g7 u
4 X8 b- z( e5 k: T9 ^

& a5 m4 E, M& Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 j  ^, w: T5 N8 W1 U
- S; g0 X5 P) R" @% k3 W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& y4 F* x9 i9 P- ^# h; }- J: v

" J& p. W" q$ B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 v# I& y& L) A! N' J0 t
: U1 |0 k  \( ?/ c' i& A1 G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 C# r3 P* j; k" T3 l7 U5 U+ z, f8 \9 @  N, }8 E
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)6 c3 D0 Y% I) ~3 w! y. K
, I( L; U$ R3 k: T
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
9 ^( d3 W+ r9 y4 ~6 G9 E4 I- {1 N. B" g+ v( p5 g

( r) M& i6 s* s. O! M7 C4 ~! W' J  p$ W5 n1 m- f- ~
/* assign the tl som board LED-GPIOs*/
( Q- Q# v0 c/ l: {# ?' W, u3 ], j0 O& C/ I' v6 s0 p
static const short da850_evm_tl_user_led_pins[] = {0 P# f; D0 a! T, e- D
# X4 t, M1 V3 s% C: a. [
        /* These pins are definition at <mach/mux.h> file */- @1 y- s7 h5 W3 D
6 V' G% S) e; D2 W/ w5 L8 a; q% M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,6 K4 M& B. D( M  ?. E
1 F6 c- p' T- ]  z* p$ m% y3 |! v
        -1. {6 L: x. \: i

. j; S! |, s" b! {3 i};
& e  l# r: P0 [2 Y) J. n
5 N1 R. |. W7 `' |1 y4 d3 `
  _/ M  a0 L6 c4 I& P8 s! d( }7 M& I4 U$ w! {5 @
static struct gpio_led da850_evm_tl_leds[] = {
6 E  K4 E1 M# s1 o
4 F2 Z% V. M- p/ A; a- V        {
, H- X7 `6 N* e) T8 `8 X* A% m" [5 L8 O' D
                .active_low = 0,
: s6 M# m: a  m4 H2 ^$ [0 \
# C7 C+ ~% v8 [1 n: F                .gpio = DA850_USER_LED0,
# u; m( b, o$ n: g* [0 X
" D" w5 h( q. c! B) ^" a5 |                .name = "user_led0",$ E) Q9 ?# D8 K( S
0 m" J' e* n" }( [
                .default_trigger = "default-on",
4 F8 g1 U' _/ S7 t+ O
6 b; H: y$ h' H1 w        },
) U  a& b. U1 ^( h- U, M- d* r$ }) }% ?4 ]3 l: F: d7 p
        {' m8 k; C. i" h. x
; I6 C$ P, n- o: ~& E+ W
                .active_low = 0,
% _. l' ~- t- Z# d1 `
% |, U/ o. _' I' a/ _- E                .gpio = DA850_USER_LED1,4 `5 n6 N/ [0 I3 W8 R
+ y. C* P. F" Z8 P$ X3 F
                .name = "user_led1",$ J; \4 k% t9 J$ K2 _6 t

, V. a- W' h2 z& b                .default_trigger = "default-on",2 w+ Y. ?2 a9 W" i5 n# W- k; o4 w
/ S8 P. x( m' M0 M+ Q* ]
        },
( T% e  o3 I$ U/ K1 r- M
# i5 m1 Z; y: M5 x' z        {* [3 V, ]+ J- h. d* R
7 F: x$ g4 q& d: r) Z: Z9 D8 |
                .active_low = 0,4 K0 {3 O! W9 u. x% H( N

1 y( c$ Y5 F5 _+ u, x' g                .gpio = DA850_USER_LED2,
+ X9 |5 u. U+ l
8 u# m, z3 O0 _- }; d& r5 a                .name = "user_led2",
1 V9 E$ A' L6 [3 q# f& K- |0 x6 d
                .default_trigger = "default-on",  C: k! I5 s* |& F6 f; K- G

2 |0 N- i2 ^0 e1 f        },
# D& g6 }+ I; z/ s7 }: ^
3 S% w. q. H! ~9 d        {1 `% ?& N5 O- Y% V) L. h( A4 W" r6 ~' G

) t5 R/ I0 c7 X                .active_low = 0,- Q2 a! J) a* i  \
  l5 O  [. s( `. R+ b
                .gpio = DA850_USER_LED3,( m5 B6 X; |1 p4 q# S7 e6 L

9 A6 I2 \# B( l/ R5 O8 e$ i                .name = "user_led3",2 e9 D) }; G5 D) p, y4 c& Z
- c' H( z/ r, m2 m, z3 D
                .default_trigger = "default-on",
) ~1 Z, s& u8 ~- w9 I; s4 s
: d& X' @% i0 \% X3 I        },
6 {5 `. ~3 R$ H! t. @3 A2 q8 z
# S: V; G* x) M) k( g        {8 c' o6 k/ \: ?4 w% M
8 Z% i0 `( s: x% R/ ~4 \: y, r: ]
                .active_low = 0,
# W6 J4 R. k' {/ T7 {/ T  A+ T; `2 w. ~! s2 f7 a% }
                .gpio = DA850_USER_LED4,
6 P7 |9 e9 C: O2 Z5 p0 S
  I) ]( Y( G9 ~! r2 P1 U0 F1 @                .name = "user_led4",
/ k- }" C& \0 \! x. o' u) K% }% \: P% S) ]( H& q; D& B( t
                .default_trigger = "default-on",
' ]: A( G  R/ N9 }, l  |, p" b
! L# a9 `3 d7 X" Y        },
, K* C# c0 a7 I) a* z
; A* M# |5 N6 u, W        {
+ x$ P  O1 V5 ^* z0 c% _
3 M6 E  \2 F$ ~                .active_low = 0,
& r, A7 J( o* r- h" J1 l7 V- I) o3 s' N' F% c, Q5 V2 O. m
                .gpio = DA850_USER_LED5,
: [( L5 z1 Z3 F! o& Q# U  r" i& Y2 [  ^% d1 X0 {2 u# o' ^
                .name = "user_led5",; [9 j) o1 C  C7 U9 a9 V1 ]

. a1 d/ l2 r, R% m0 B) s8 X                .default_trigger = "default-on",
' k+ R' Y3 ?+ H
5 o& J. A7 n% k+ t( J9 D        },: a, P& Z9 U0 {$ e, w4 P7 b  d+ f0 z8 x( i

" Y- f) _$ h7 a& H};
  l2 }' Q" W. D, \0 D) f% `! G  K1 V8 B" x- X" V
& v/ H; p: A. e  S. P
( h% P8 Q6 x. i$ i$ k7 I: r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- \& T3 d, M5 J& ]

' d- Z1 G" Y0 X( G        .leds = da850_evm_tl_leds,
+ D  O/ P/ t8 y1 W7 }8 i3 U: Z& @. O3 w7 q8 U" c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 s- E% X# t" O$ g5 F! J6 j' c) X9 E" B# n
};
6 s2 Z1 |  N* \) s4 \1 u5 U1 M; ~* r0 G" ]0 A2 m8 r
: f/ h% ~2 W5 _6 T1 Y! u+ s
* y6 U7 A/ j0 W- H, l
static void led_dev_release(struct device *dev)
! N# B; d; I' D' K2 r+ Y4 B: m* ~9 \: c  Z5 ?$ {' M2 j
{* f# A* d0 S1 H; k) }, m# V
3 K: _  o7 ]7 q/ f
};" Z* f' j) h  c0 C

6 Y- o7 j7 T) v, o7 p) w
7 X) R  E$ A' N' F& [) l1 B3 l" C: F1 n& ^' w7 m0 f
static struct platform_device da850_evm_tl_leds_device = {
5 I, y" ~9 ~6 N4 n5 r- G2 ]! H# L+ x5 P: K6 A% `
        .name                = "leds-gpio",
/ M+ W, h3 l* M1 j% z! ?* H: ]+ S4 m, Y4 k+ c: a
        .id                = 1,2 o6 I. C+ p( i8 t+ k

' v2 k$ M) M. n        .dev = {
8 U$ ?% e/ K4 v7 f$ g% O
$ ?- f9 A3 j6 G2 j8 U, H  l                .platform_data = &da850_evm_tl_leds_pdata,
4 v& ?! n* B$ U. [: q
. \8 Q; k/ t7 C  a+ h                .release = led_dev_release,
; |) a* y: c+ K: u4 Q6 l5 b& Y3 e% k( X& C7 Q
        }
6 ^3 _( f8 E; R/ Q& i$ j2 u, ^  m  h8 Y$ E9 }
};# t0 Z/ X; {# g! ]: }1 s5 t3 I

* z7 B5 j2 g- a
: ^8 j# Z: J! ~& j5 K! O( ^  M
static int __init led_platform_init(void)+ T1 q9 L  ?) b9 V

, R- o) K4 G3 o* P/ W- R, ?{2 L6 |' d3 j3 {7 q8 p

7 g+ g! R5 }2 N/ W        int ret;$ K2 k4 \! r% m& G( b' D

1 m2 r* J6 {0 t: D#if 0
1 @1 U8 @0 s3 W5 o2 h/ j8 Y& _4 l' S  p5 l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: r# b0 T3 z" ^$ n& v+ c% ^" l6 M
% i3 I! J6 N7 k7 H' r" N        if (ret)
( O! |. c" l; Z+ o2 g
) J3 i6 h4 j; f8 A# `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( S3 @6 K$ m) N7 M; `
: Y0 w" u+ Y1 D4 I* u8 m& E* A
                                "%d\n", ret);
' I- J9 {, ~. i# p/ j
. m' Y8 _+ G3 R: D3 q9 W9 @! Z#endif
+ r5 ]6 r  n4 A/ i$ J) e4 ~! a6 z+ p3 x1 N& S
        ret = platform_device_register(&da850_evm_tl_leds_device);( i- \# {7 Q9 ~/ _8 u( h, s1 j

- E& f" J& ^& G/ ^7 L3 S6 g        if (ret)
  k, n0 f+ g4 ~+ p; n8 p% U5 {+ |9 d% `: b: F1 K
                pr_warning("Could not register som GPIO expander LEDS");: d. `7 s# q! u( d4 f% F% y
' q( j% N! W; s3 f  K# m
        else
9 I3 |, h& g) W, N8 Y$ z2 m* R# l: r' q+ `% E3 s; t; ]
                printk(KERN_INFO "LED register sucessful!\n");+ g3 Q) r( o3 z4 b0 [7 q: n
5 ]6 S/ A! E! ?4 D2 L5 e& i4 D  ]

! m8 [# x2 D6 M7 |
- V( x7 ?7 ~3 N1 Y. [( d0 Y& ^        return ret;7 d2 c+ w3 v* Q3 [/ @# k

0 T" Z( q# Z0 g/ {: k}
7 N% W( D" @5 V+ E8 I5 K0 _# ^9 l" A$ a# V; c
7 ~/ K8 p0 I: T, y$ r2 ]# c/ n; X
3 c0 ?0 o+ C+ V  u% c. Z
static void __exit led_platform_exit(void)
4 [% l# J. O7 z* Y* Z" h6 D* Q, ]" T! G
{4 t& Q! o0 M, D- w5 j) [

, f- G$ _! g( _( S, W, ^# k) ?& q  V        platform_device_unregister(&da850_evm_tl_leds_device);
1 R# c4 g0 a& G
- Y& w: w- x7 p" h6 r; V( d1 V" O

3 e) B# ^/ K- B5 {+ V3 t        printk(KERN_INFO "LED unregister!\n");8 W% U* @1 C: e

6 H+ l) I$ f0 V8 L) c. g- f# }) \$ @}& F5 S' P* f: i4 L4 v. i: n2 e& M7 ~+ Y

+ C6 R8 t: o0 }7 y7 h3 @: w! ^( U5 l$ w- j

: B! ~; f+ T5 l" Z2 [; }, l0 d% w; Xmodule_init(led_platform_init);
* `' Z( t5 q+ ]% _
& G( v" G8 @+ ?9 n! @module_exit(led_platform_exit);5 t4 P% T" A  y
$ A' z  P# j* f0 W" s! k' O9 o

/ C. s6 @$ x2 V; s$ o( k5 [; a9 n8 O1 O4 r2 h' m. y% f, E: T
MODULE_DESCRIPTION("Led platform driver");% Q% q! S- [! G7 z, A0 ~
7 H0 q1 E$ f- t7 q- p2 E2 f
MODULE_AUTHOR("Tronlong");# E) w' a  r, C6 v7 p6 |; [' i' t
0 `/ n1 C0 C; V" `( `$ ?. O( l
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32, ^$ x, _- g6 Q0 ?$ o
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
) K1 O) R$ u4 e* S6 K ...

7 g. \/ Y- ^# ?5 v/ B' G好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
/ n7 H4 N% ^8 K# O9 Q7 ]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-5-5 23:47 , Processed in 0.044708 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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