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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 / K* E. p/ O/ X8 J: l4 }
% J+ F  `/ y$ d  y. ~
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
5 ~. D5 S. a6 l
( p; G  d5 q6 |1 J* S之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
  n1 U& C+ {+ L) \1 ?8 Y* @  Z8 e" ~" C

本帖子中包含更多资源

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

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, J: O/ e  C/ G8 K( {7 P% I
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
2 ^* R& P5 E; @* a
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:- K  d4 n* N' A6 d. p: s8 c
#include <linux/module.h>
  _, w  @" _! s8 ^1 B, i; D# K* f
! l* p& v2 [% z0 J# s$ e" f3 S#include <linux/kernel.h>3 V, I9 A* e. Z+ n- ^# S1 u

/ r2 J  B' E8 q8 h0 }! S" c- G#include <linux/types.h>
! z% ~+ ?9 @/ [2 c
$ @+ n$ D- ^# G/ C#include <linux/gpio.h>2 X$ U9 S9 {. X' r, @" ?* K2 O
: G, a2 y0 F- f( i
#include <linux/leds.h>
5 B9 O( P4 A9 v  Z* x: ~  G+ P5 R/ L+ N+ k* F1 W
#include <linux/platform_device.h>6 J/ }: W' E" b, ~5 L1 r

8 R: T& V3 S5 x! Q3 \5 L1 n0 c6 E, M$ u
' d! x/ K$ S+ i- z
#include <asm/mach-types.h>7 O/ g. V  a; F7 l
( W1 {8 W3 Q: x. |: v
#include <asm/mach/arch.h>! s0 D7 P% ~8 _3 B/ e
' Q1 g) Y" q8 R
#include <mach/da8xx.h>
! `* U" `( B8 Y  x' r: @) C" z' c: R" c! {
#include <mach/mux.h>8 b) t, j& a, A0 t& g, x

& }7 n4 e4 ?! k# c' g/ d. D7 {. z: i0 Y9 [

9 Z: o' o: {- j$ Z2 i9 I#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 y5 v# e5 g0 O0 Y/ f% F* g7 B' ~9 Q, o0 ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), ]& R  L) a- g  K+ ?, @3 h

( K) a4 }6 l6 H( o5 J0 M' _. R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: [7 o7 V$ J- t: `2 X. T' J4 B% g+ h0 f# J7 T* @! n. U9 {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. d- y; q7 v3 @% y8 H5 C. Y, }5 S* j; m& X5 C* z4 P
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)* A8 I6 ?, w3 R" S- [9 {0 N

  i" J6 R( Y8 m) s& j0 U5 @#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
' [8 U! g- A/ B. t
# M% u9 E" n: ]( {# G2 w9 R3 \% W. T1 T

3 f+ w' w  r& N: ?2 U1 N( p7 y/* assign the tl som board LED-GPIOs*/
: E; I* R( q6 N# {+ f) C  l3 {; |0 C9 N1 B& p5 ?# q8 P
static const short da850_evm_tl_user_led_pins[] = {
9 Y+ _9 L% D# L7 I( N  E" K" r8 I8 a6 X
        /* These pins are definition at <mach/mux.h> file */, r- f" J. v' D0 @) g

5 h% [  ^) ^$ i. y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
& L8 J$ G5 G( y: [0 p6 x, f# A% `5 g- |) b" ^+ B2 ^
        -1
# l9 ?: G: {4 |  A1 h- i$ ^5 I4 ]
};
  w- U2 d' y7 m9 A5 B/ p
! U% v! l9 I" ]( O; ~# I2 z
  j0 L9 X6 h% }. V2 M1 T; `$ e- v! i6 I  `& g$ f* ~
static struct gpio_led da850_evm_tl_leds[] = {
4 |% [: M* t/ |9 w6 E! {4 Z
9 J9 A# ]7 v" H: k        {: _* j! x9 A" x/ H

. X8 \& f5 c% J6 I5 W9 d! H                .active_low = 0,
7 K" {) U( W7 G  D6 K* |7 d. l! L) O/ q5 q1 `
                .gpio = DA850_USER_LED0,
* [' K# b1 C. @* }5 W6 P3 E3 {5 {4 f$ z% b$ T' G) d: ]5 }" |; O( N
                .name = "user_led0",9 w. _% U- ?* I

8 a5 ]3 K0 {& c0 D8 m  G2 T                .default_trigger = "default-on",# \, _1 K% J: b8 N
" u4 C5 `) q1 N6 V2 _1 }1 W2 |& {) K
        },
% v6 p) Z, m: Y% z7 p; h! P1 g7 s3 H" [
        {8 @. R0 `6 o! ^% U1 z
& ~7 u5 y7 ?; M$ r
                .active_low = 0,
- E9 n* @1 ?* S
4 Q* l0 U# n6 M                .gpio = DA850_USER_LED1,; v2 p: S7 o& \! @: `( c' h

! T( \" ~' f& L- X. e8 f                .name = "user_led1",  b8 c) W; |0 C3 M/ n# ]; V
  I3 w$ I' a. x1 }4 v
                .default_trigger = "default-on",1 L* ]1 U# O" g2 \2 j
1 h8 y- I0 i$ l; f! v* k& D5 N: W
        },  y1 Y3 T: `; l+ @7 l* o

' s; ~8 k% y5 C        {
9 M6 \- i* c2 b" A$ t! N8 F3 _& i* j. I5 ~$ u3 y: g" u
                .active_low = 0,
* R! W6 T% h, O1 T
/ F  n: H- U; \! |" h) P/ ^1 x                .gpio = DA850_USER_LED2,
6 j5 H% J  Y4 }" l% N2 O8 @# F0 u2 z+ H" i/ K; b2 j
                .name = "user_led2",
: e6 e; ^2 B/ m! m3 X. u: X+ E4 P2 P" F  n
                .default_trigger = "default-on",( i8 X6 a" H2 l/ G
0 v8 f+ S( q6 Z; b
        },
* r/ q: T4 N( @& }4 r" B# B: @( O
: ]( k( d0 W$ ~2 l& w2 O% f" `        {# J# r6 E/ i1 Q& M% a
  j* h, _4 }* u. `( U% h
                .active_low = 0,
, o" W3 H0 _9 P5 p4 f" p! b( O$ ^" |
                .gpio = DA850_USER_LED3,! `) J- X* I8 `& R
% j! S) ]% I( H/ W! U
                .name = "user_led3",
0 T8 F) K5 Z/ l3 [! o  K
$ r2 i. L; J( C% O- c# T                .default_trigger = "default-on",+ L" A: \$ w% o- M, W6 j5 I/ y3 v/ c

. T7 t/ ]) ~/ K- V, m+ `8 I        }," R" K+ ^: a4 w' |( ~! C8 H3 l

7 Y/ s  K; D% u* m# u2 P  [5 b        {5 @+ g9 f$ [/ G. |# ?6 W
4 P6 Q% t; e2 V
                .active_low = 0,
2 i- o* b" K) z* S9 [: n+ _" o
8 i- c; b. m! E# h                .gpio = DA850_USER_LED4,5 v& J& d9 a! [) v3 z+ n* I4 N

. n' m2 U2 b1 z# k                .name = "user_led4",/ @) _, w5 Z* v. b; I+ W! }

# z& o" m5 M4 e: I+ Z9 N; W                .default_trigger = "default-on",7 u) N) \. h4 {' g/ ^- L. v7 E

9 R* T, }6 _7 v" p        },) ~; q% U8 N5 C1 h, M
6 _) F% S9 a# d2 v" x  u
        {" M* s1 v4 b$ l9 x" I
' s+ E- J" n9 h# `  l
                .active_low = 0,; X  ~4 Y' [' R8 B

5 ?) ~( f2 D" \7 V5 ?5 E; {0 z7 I                .gpio = DA850_USER_LED5," ?4 N' r. R& ?& V

% O7 x( e) {# _5 ^                .name = "user_led5",& a1 p) z; z& o
5 T: [2 B/ w9 a
                .default_trigger = "default-on",
/ `- }0 W1 Q' t( Z: B2 r5 X* A6 s! n4 t1 w" K
        },
  V; \1 ]5 M6 e: ^9 e1 t) X8 c& i
2 F: D1 ~- w/ S8 O4 c};9 e( }% D! K) k. E8 C0 E0 z
7 `5 B3 k8 d, h
. J+ V; B9 e, A4 f5 y5 V3 l3 u, e8 t

( R0 C4 a1 G; x6 bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. l; K/ ^7 M* ]7 Q4 g( w

9 n, ~# n4 D9 I) W        .leds = da850_evm_tl_leds,* ?6 C$ U+ L  y4 Z
, ~! M. {! l3 C3 |, O# y" a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# ~4 v( M& g! |1 e6 [
8 o4 W  n8 w$ C0 ?6 d5 f2 G7 |};
( Q# E# s. D* ~# s- }" K' i( [5 U: E1 _5 i# _5 ^
* t% N8 F7 J' |. q
3 F$ w- D9 v4 k! H
static void led_dev_release(struct device *dev)- [  [0 @! m% k

9 U, W; [% G! L+ X2 v{
0 u0 ~% o1 e. z  r7 C# i! Z" E
, f- k2 z' O5 t};
6 c. G7 A; L2 E1 c
: |- F  r. [: t( Y! N) X
+ m% W7 p0 L( J1 v. T# y8 z0 f, l2 m& V, `$ C3 i: ]
static struct platform_device da850_evm_tl_leds_device = {
8 }1 m3 R; Z' Z4 [( y( ]. s
7 T+ S: k8 d8 s' J) B3 ~2 w        .name                = "leds-gpio",. `0 r; F) D( A; \

# ]3 O# ^$ Y: L) `& `, \        .id                = 1,
6 w9 b  k, a8 P( Q$ \0 c: q; z9 ]. z' L! v8 g" r* n1 w/ g
        .dev = {
! u4 `' B8 Z5 n+ B& M$ P* a' o) n5 x& Q/ [; G+ e
                .platform_data = &da850_evm_tl_leds_pdata,
+ i% i& F5 ^' Y* ^( p2 X
" f$ l% M9 T6 {" ~% h                .release = led_dev_release,
1 c0 h6 T4 V7 T2 ]0 f- M8 [
8 a6 c. j, W' t5 e0 _* d        }6 E) n. Y7 X* @

2 `" M& @3 [* Z9 g& J4 N};  T9 e' h3 o0 z& Q/ F6 n9 H/ W
/ ~, C. w& s5 _! \5 |& }
! A, s2 k( Z$ v( Y1 H, o
  @7 `( k' k% K; P& L4 p# \
static int __init led_platform_init(void)
. f# z5 t( T. o" h6 \# c& `* }& {; H. \
{
8 R8 a4 E0 j" ?2 j: l
! T( [' \! y) r9 Z4 `" t& K% S& F$ a        int ret;
' c8 o: m( N, @
' y0 j6 p. n& _! L! M. a# C#if 0( G, h  s: `6 n6 f) }1 B
# K* X8 |% A3 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 w$ x7 H4 E% ?# L& e  D7 u, ^" E, k; P$ ~4 Y" Y8 S
        if (ret)/ E: ^% A& I4 I5 ?  s" I6 y
+ K& {# a* i9 i4 p6 Z6 `. B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 k" }& Z1 t# l& H# O
; h; X! E6 P+ n. u# S                                "%d\n", ret);
" r' v% f5 U  V2 H' v- e/ C  |2 F* s% o% K4 ~
#endif
( U! `8 z; P- c/ P0 W% P
9 P- G% \6 l: u' A2 r        ret = platform_device_register(&da850_evm_tl_leds_device);
, }6 e" @& x7 {* X# c. @9 V: F
, V, j$ a( x$ L% H6 b8 _( G+ c        if (ret)- U  R4 ]! D0 r/ B# _3 w- H

8 W8 K; ?  r: j+ W                pr_warning("Could not register som GPIO expander LEDS");6 e* |' m. D' A/ }
( z; e3 h" r5 _" e5 k, h8 D* Z
        else5 l) G* V( P6 Q9 y2 A* W
- t+ u/ n) u5 y) q9 b; ~* d* M
                printk(KERN_INFO "LED register sucessful!\n");1 `8 w* {" g* |+ }6 L3 G

  |" t' g/ {1 P% ~# b6 K. P* r  v
3 J  s5 |; l: N+ P
        return ret;
0 C( p) I! W9 E& y  R- [+ U( H. N3 c3 [8 _. d+ A7 {$ G3 A
}
4 Z( a4 X6 I& k( i5 V- K1 R7 ^

- G6 J9 w/ V  W% j9 S
$ U9 ~( ^7 B4 W- N: g  F+ wstatic void __exit led_platform_exit(void)1 e+ ?" D5 O) I, m% ^& `
' e, G% r, s6 R- h
{
+ w/ n3 ^( F7 N0 ^4 M% M  @4 P  b6 x+ x/ h8 v* w
        platform_device_unregister(&da850_evm_tl_leds_device);
" \9 V% F1 E, f2 O. f" W" a! ?5 R) h* O( c
1 T. f( c8 V* Z9 n) O2 ]' n( i

/ z4 E5 V5 h1 ]! Q  c0 x4 a        printk(KERN_INFO "LED unregister!\n");
- h. _" I8 \5 A. T# b* l' d* n: ]: ?7 E$ ?
}
4 i& J. u4 H9 s( `5 _
6 p& P3 u# r5 U! H& O$ [! s# x- v" R( r0 x& S- j# U/ D, M3 M7 e
* }. O5 i8 Z  N1 I, {- u
module_init(led_platform_init);
+ b) K6 d( G% A& ~) ]1 r/ _
. H- v5 @0 x9 m, H: Bmodule_exit(led_platform_exit);1 ^% j# l" U5 J' g2 z6 s2 ~5 z' U

' s# q, H  P6 g; k% ]! H$ I" c, U# U  p/ A1 K5 L0 x6 W4 ]
) w6 O* _7 A% P/ x' Z
MODULE_DESCRIPTION("Led platform driver");
4 C- H! u/ z; }2 w7 ?+ G, t6 r5 {
MODULE_AUTHOR("Tronlong");
) X' I3 m( n1 I4 s8 n
% ?/ P, ^% q. M2 P6 {1 x7 p0 MMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。6 \* B3 t% v( ^; i* q

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
# z4 r' J, e' M9 _2 ^您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。; W6 g  J) w7 N( E
...

7 S( O7 p- A8 G- s* ^+ d好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。7 ^4 p5 H8 k" C6 Z4 U
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, 2026-1-27 15:20 , Processed in 0.046861 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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