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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
, s" ^( ?$ m$ T/ t4 @; K" l3 e! ?" d6 {# ?. m2 P# j
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的$ q  G) P* q) b

9 G9 Y* _* |0 F9 I之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
+ N8 s. \/ j$ v* G0 a& R
, c; P- d9 U* t- r) ^$ o: ]4 P9 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:146 m" B8 A6 y, {- H! }' D- {+ i
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

  t0 u- C) j; G" ~/ N我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:: W0 |6 E0 J+ @$ h0 ~, u
#include <linux/module.h>. |- C9 d, K" u' J! Q$ v+ a: t
- C% K! W& Y) l/ l$ l  N
#include <linux/kernel.h>$ \: n0 {3 L" O6 Q1 J6 H
# A$ J: V8 k2 T+ t
#include <linux/types.h>0 n/ R2 Q; B# Y0 i; k  R9 @
. a) P8 H# O. y* B+ h3 g; t
#include <linux/gpio.h>$ y- d# B3 i) ^/ C7 Y$ ]/ ]
8 K8 q0 s# C8 D+ J
#include <linux/leds.h>
- `1 J* T6 ~$ j& }  I1 j
' f7 Y; a* K: }2 C/ n* N#include <linux/platform_device.h>6 Z. b2 V, ?) z

9 j$ w. {5 z( W. B- q
+ f# R& Y" F" ~. @0 o. V) N6 f0 F1 @1 H
#include <asm/mach-types.h>
* s) S' u4 x9 ]+ [" s- m# l  M' `# r/ I
#include <asm/mach/arch.h>7 Y* o7 [4 t" P  p3 [
9 S& b/ j; J. [. B: s/ N  L
#include <mach/da8xx.h>7 M% F+ [& Z+ v6 Y- V$ _
# T% J, E- u& z- v9 S$ p
#include <mach/mux.h>, i- h5 k2 n  G5 M' P1 D+ c- t6 P

- i5 U  a  T; F2 ^
. f/ I! f. c2 ]% ^4 ?: |7 s  ~) k: D
5 _% v' z5 W$ c# [! T! w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); u) y5 a$ T' B* n, I; H# b1 h
3 H" e& x+ Z# g$ k: M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 P. |/ r) P1 m8 A& ]5 ]
  L4 i* [' _) k% D8 h8 P! L& I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! a* d& i3 c# P8 R' K$ a' }' C5 Y+ e: ?- y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 c4 [3 U* B  [, {, |, |5 R3 e! j8 v5 N2 P  I- Q. \' W! o
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
* `# X$ ]7 S$ S; f
3 t5 n7 {# J2 N' z#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
6 f# s4 }/ @) e. {" B: F& j  Q' o
3 y2 V1 z- V, L! `4 @; _: @) g3 _- A* b* k

$ k4 r' T" ]2 t, g/* assign the tl som board LED-GPIOs*/4 l" i/ v0 O6 v

& U, \$ I+ j% F9 h8 ^9 K+ ?( ~static const short da850_evm_tl_user_led_pins[] = {
( i8 E* y' D$ G  q& z+ h/ |% ]* X
' B& E; I$ ^4 ]# g" m        /* These pins are definition at <mach/mux.h> file */" j2 S9 l. G* \* [2 a, x. m

+ A9 |( X8 ^* _+ U2 W1 k/ T/ K  L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,# M* ], e0 J# w" o, r

1 L2 N: ~+ k# W' P/ r# H        -1
( @* E# _; {' u& q4 d5 c" j
$ y4 N2 ~" I0 X3 T, U$ W' ?9 y6 D};4 u, g8 a' G0 B; ^( X+ t" i7 |# U

, B' q3 `- s3 [' q$ q: k2 I9 k0 b( }; e
6 j4 ?% f- a) i. y
static struct gpio_led da850_evm_tl_leds[] = {
' g; e0 T, H7 Z- C! F8 \8 v- \
9 n% Y* J" _4 @0 t        {' f& ?' r% }/ \0 u& t+ }3 ?
$ R5 e+ t! s0 O
                .active_low = 0,
- c: m8 g5 s  a+ [$ X7 Y9 k- O! U% G
5 _4 ~3 \0 p) C( }8 L" z$ ~                .gpio = DA850_USER_LED0,
1 R! |" t6 X) ]/ ^
" I; c6 s8 ], `3 r. H                .name = "user_led0",
& n* K4 U( F, S/ a3 u  F/ p2 V6 w0 S" G* B7 {! Z
                .default_trigger = "default-on",
8 A* p* v9 q: S/ b! v* }+ h( R  k! U4 Z0 V9 Z# M( k$ X$ G: g
        },& i' Z1 a  ^7 ~7 r

: `& X+ O+ `2 o1 ^: ~        {
0 e# V1 O, i2 W
4 d- r( q& S4 p8 e                .active_low = 0,
/ V$ A2 h% |! Z# P
; n( p) j. Z0 D5 A+ D0 I7 H                .gpio = DA850_USER_LED1,
8 C/ S5 Y3 H# m% b; D
: d6 W# m0 F8 z# u' |" l2 p% W! ~                .name = "user_led1",
; _1 K5 E: w* K7 B
0 C( s% F$ T; a' Z  w                .default_trigger = "default-on",5 y/ r* ?! w9 X

. S. `. F: [" V8 ?( t        },
! _0 n1 H4 O) ]8 [$ d9 P
; S' [( o, D8 R        {0 B9 O$ l5 f- @  Q
& M6 u5 o& q4 [# N1 A
                .active_low = 0,
; k* g7 X( S: ]) ?- ]( J+ N6 m; a3 ?& W  f7 y
                .gpio = DA850_USER_LED2,
3 n7 ^& g' u2 K( x0 P* E/ L. G  G
                .name = "user_led2",
* W" y) ?2 ?  V% y3 {* I; ?% X
$ V) [9 ?! t% W& L& U                .default_trigger = "default-on",
9 G) h6 u7 N5 I9 s1 N- l2 O- F. W7 O3 a
        },, h! ~8 ?" _3 W( Y, j$ n7 U8 w: E+ G# e! P

+ e( T9 D' \9 \/ W7 e: A        {3 j; j5 s* ]4 B" I" b( k
2 s  G" S. I! g9 E) v' Q8 {0 k
                .active_low = 0,7 {3 V8 o5 B( h" S3 r3 [, ^

8 B5 v1 T8 l: I+ Z1 a- e7 H2 l                .gpio = DA850_USER_LED3,/ Q$ K' }0 u% C; @
' H# }+ |8 r" ^
                .name = "user_led3",1 D/ U# \9 w. p; u7 M
( A1 \! u$ Z$ f4 b
                .default_trigger = "default-on",% i8 ]) k+ N) ^2 s, U2 Z* O; r1 M

* O+ a7 `7 h# f1 k9 H5 a' F        },
6 s' ~; ^! ^; K4 q# m) [
. \5 Y% R" F1 `/ d6 y  W. T        {' O- K9 K7 Y& S& t
5 t" J: h! j# ?* r! p! p
                .active_low = 0,
  |" h- I0 x! c/ ^) E; n  m1 d4 \/ L" [/ d: K& m& G0 `# W# C" r
                .gpio = DA850_USER_LED4,6 l* x! W8 T5 E6 D; r
4 o, ]0 @' @5 O* [: X4 l
                .name = "user_led4",$ g3 h+ V4 \% U* v- q
) m" H$ m( f1 U7 P( P
                .default_trigger = "default-on",
' i% l; ^7 r' F. _% l% F' x& a+ ?$ U+ n1 D. Q' e, E9 U  F
        },9 d' b4 E8 i9 x- ?& q! V
6 g7 u7 A# Q4 J5 Z/ f
        {
) c6 `: s  p6 {# O  q9 ]8 j; l, y) r% F9 c. G* y" W. M
                .active_low = 0,4 d: [- O1 B, M( i. Y) D3 Z' _5 ^

- S# K! b# c2 K                .gpio = DA850_USER_LED5,  M# E: v; g' o, R: R% a3 c5 A

2 p! C8 l7 ^4 r6 C% U                .name = "user_led5",
5 _) v8 Y) h) d; F+ J# ?' l3 y
) v1 k- P8 e, z" r9 Y                .default_trigger = "default-on",4 h) C- b5 j7 I9 n& {
/ e* U1 k7 J  @$ D8 U  A7 K
        },4 J  {3 I% E4 C# O
$ {0 ~9 A+ y8 _% Q# f& R0 N  L
};
3 m/ p( Y2 K' S1 ?  u: u1 y5 ?' j( P9 J+ W* `
- N1 @) R; E# r0 U
" k/ O  g0 R( B" T# S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {) M& P2 g% k" ^  {. @* J" `

% K! z5 V0 E1 _: F  a        .leds = da850_evm_tl_leds,1 \8 G# `! I, `) _

4 i" P, g  O, f9 H, y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 g, D; g, x" u. \
8 [/ A) F5 W0 K1 C6 R$ r};9 T5 Q: |% i, i" I$ J# w; p& A

* z7 ~. H. h! C; M. @$ t8 R+ ^
- P, E0 q5 E' p% U- U" p5 Q1 D+ c* k% Y
static void led_dev_release(struct device *dev)& W* n: V# Y  [. F

% b4 k8 W& {+ r; p" _  F{
5 Z# c6 x7 \9 C& l) K: c
, a1 K4 i; ^6 ^% X2 |; \" ]0 i( B};
, y- g( ~0 R& G* h
4 R7 u; p# M% w  N( M( t( A) [4 j% Y4 [& x; K

3 Z1 {) v/ t8 ]& x' E( `) rstatic struct platform_device da850_evm_tl_leds_device = {
% a( k* I( z6 }9 H, X- y" q( L0 ~6 G0 p1 S, ~# c5 R( ?9 Z
        .name                = "leds-gpio",
- |1 Q2 h( T# J: h. e" J
; a, q$ F) }4 T4 D; i: ?        .id                = 1," V5 r5 \: X, |; Q

" ^9 e# Q' V% Q0 W        .dev = {
% h) r$ P5 \# @9 p8 e: l, l* V) w, w% p" o1 T4 l5 q
                .platform_data = &da850_evm_tl_leds_pdata,# Y- Y, B6 Q: j
$ \4 D! b  ^1 G+ x9 j
                .release = led_dev_release,! Z. i2 \/ o- v+ \) U. _

' a7 X: a7 b/ E8 Y4 x( g        }
& p7 O4 }) C8 O8 d6 _
3 g3 G! K# Z/ N; T3 G; M3 X9 o0 ?};9 f2 O( z: Q7 h* N: o0 k$ v8 D* g
0 ^" R8 |! t& L) @' d4 Y$ K* @' I+ b& G
7 X0 [& h: Z8 @7 n+ f0 z

* h6 J, q1 q* o4 Z. ?$ d' t- |static int __init led_platform_init(void)
0 ^) L2 d1 m: Q$ d- r5 B  {" e& K5 Y! u' t4 |/ f
{0 [% z7 w/ j  x' d8 p" [, l

& K6 h% Y' Z+ \2 o* G        int ret;
+ U$ t8 X5 R8 u# Q
1 k; M3 u8 `  ~#if 0
' i- W( E1 h1 {
8 R% K9 h5 N) m3 H        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) ^. b' v4 |, }' f5 @6 [( [0 Q( Q0 N$ N, |# @6 L6 ~
        if (ret)
: t* t+ {3 p# P7 F; H0 [
+ f! }& R, B; K' v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 @7 c0 Z/ u) c$ q8 ^

1 Z+ [- T0 Y- u                                "%d\n", ret);
) k) ^* k" _& W; ^3 h
$ s1 D' F% e6 A: [5 v#endif0 D: J( ?, m5 y" j9 n9 S

- e- Q+ y+ H* @0 m        ret = platform_device_register(&da850_evm_tl_leds_device);
- Q  D) v+ [+ ?, i( Y6 Q
- }1 ?  y. A% X/ V  b        if (ret)5 d  q; N% i. z) }
1 x" l$ g1 M- J' k- T
                pr_warning("Could not register som GPIO expander LEDS");
  Y6 g- Q  R6 Q8 w4 B8 Q+ ~" l) R4 C
        else% d8 }/ Z  M. J5 \+ S3 d

6 ?+ U6 W( F7 a                printk(KERN_INFO "LED register sucessful!\n");# `; l+ t5 Z$ y3 Y$ S8 v, U5 ~
/ E2 [3 e- Q- @- d, ]4 h+ J1 c
: W6 L- w/ W$ S6 q& ~5 I& X9 T* N
) j4 `! E+ j5 H+ a
        return ret;# {' f& B0 |8 K
8 D: c1 b/ d# N% c) a
}! d5 G# l! a+ t! T" f+ V9 G; Z9 o8 V

5 d( u( p- [; O* u  G4 J3 k. X
5 P4 M+ U. I+ c# t  y- z7 H! ?. X- `- l- O
static void __exit led_platform_exit(void)
. ?& X5 ], z0 Q0 _! z/ ^  Z8 A0 W& f
{0 ]. F0 g% n" k3 L. t
1 o: v) [" P- d" t% T; O* \" \) m
        platform_device_unregister(&da850_evm_tl_leds_device);
% R+ [) [8 ?0 R0 x6 p2 D5 u% B6 _  m+ U5 h, u

/ N# S  C6 T% I
. b# U7 R0 Z: Q5 X        printk(KERN_INFO "LED unregister!\n");
$ }+ Y2 x5 }# V3 `' v  d( y5 S# G/ ^+ {1 D4 K6 P% m6 H2 s3 b
}# q0 F+ Y3 y% \* u6 i1 c
8 w, _# J+ ]& U% }: m
& S* w  t; P' }5 o
' }  i/ {: V, j
module_init(led_platform_init);) A' P5 k1 y8 n8 n1 E- W. ?

7 K+ w% o6 Q5 a" E& Y/ ?# R" B' K& wmodule_exit(led_platform_exit);( ]0 e. C" m& @, `  x9 ?  Z

4 a4 i% {( t! i- n8 w* S# T. D! r5 z
# c1 |" U$ b9 K( r$ }" N. a& o8 e8 u, x0 c: {* p6 V1 |2 ?& _
MODULE_DESCRIPTION("Led platform driver");
* b: l$ i4 {" D; g
$ A& e# Q8 y; B0 _+ m$ \MODULE_AUTHOR("Tronlong");
5 f; h3 a# V3 U+ i3 ]9 c2 w" I# z  y. U. m
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。" a& E+ _9 @3 J4 z7 n, x0 `9 i

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32$ M2 `. t2 }5 c) z3 p
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
2 \! ^+ Z/ N$ W* J, X# q ...
, y1 v7 i. S1 ?
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
, n. j& z  @+ \. G& V  dhttp://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, 2025-12-7 09:45 , Processed in 0.048999 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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