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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
$ U  X7 V1 M) u# L; G9 C- F! t& W2 T& H# c0 J
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的1 C' I' M+ [! e8 r# Z
/ p5 ?* g* _+ `6 k
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?% _' ]5 D, P$ n6 @
' u( [$ P  e1 n# \

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
7#
 楼主| 发表于 2018-12-17 17:29:12 | 只看该作者
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。* K0 l- W# L- ?6 T- A$ Y3 O
http://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32. ]1 F1 ?7 K% d) L
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! |/ b2 k) c- |  m! r- X& s3 {5 x
...

: n. o: a. f5 ?1 t7 W; T* m好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
; p* @1 J! N( p6 K0 W

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
; q8 |  i) }8 m8 f4 Flinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

5 g6 a* _+ {( K( B1 [, x我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:$ S! z9 }% }' Z9 X$ P4 R' N* R
#include <linux/module.h>! s. @* l5 Z+ h! r9 f, s3 {
0 O9 L6 q- I6 R2 k5 {+ G
#include <linux/kernel.h>
8 H6 K# X/ {2 y& E
3 @; v% h/ A2 y& i/ r) N3 _#include <linux/types.h>, `+ S; Z  T7 A" e8 h

/ k6 L: I! @6 T( }#include <linux/gpio.h>4 u9 e  K# X; o) b9 s( h/ h

! }7 S1 `" C  R. e#include <linux/leds.h>
: u9 Q3 }- F0 t5 V
' s) J2 ^2 u  l#include <linux/platform_device.h>
; [2 W' ^, ?6 h3 W5 t" }  a1 ^1 }, i0 r* e; N
% n0 R$ Z* e+ N# x- s

2 G1 w; t; Q* Z! R7 W9 m) W#include <asm/mach-types.h>1 Q3 ~+ T. D* K& M. D8 H  S+ K
9 |& l* m; Y+ r. [- x
#include <asm/mach/arch.h>2 {) q  d. N/ c2 y. Q7 I/ S; M' N1 H
$ K0 U' n- S/ ]& v
#include <mach/da8xx.h>
" n( u- {) ^! [" a) s2 j" _- v! U( d5 X1 I. T
#include <mach/mux.h>
) W8 l" Y/ V. x, `: v& ]- D$ D# w4 I! c0 l1 ?; h

1 t7 x4 h  p/ u) E/ Q" a
- {, ]5 J3 \- u% c0 f% `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 L( e6 \1 y0 }; ]! q- ?
& Y: d3 x7 \. S% O& g' f2 D+ F% R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 m2 t$ B* v' Y5 q% U5 j
/ [# M' v) y3 G* o, z  A8 d# T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( N$ [1 x0 |. ?! X4 c# T, k5 D1 I& L
0 w! Z) v/ M" T6 T4 G1 x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 X2 {* Y1 }. n6 l, x; X0 T& ~* j. g  y: s
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)2 {+ X- C( E4 T  B; Z
9 `9 h" z& I6 L# T
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)4 _: B! t* h2 F

' ?) R7 R5 j( H8 f6 t; o  \; }3 i; O" f2 q- f1 o  w

$ k4 \& O0 h1 M. b/* assign the tl som board LED-GPIOs*/! R0 f% M% b, t% v3 X+ w; }# V5 N

5 h2 y- F1 N. L; r$ P+ Ostatic const short da850_evm_tl_user_led_pins[] = {
* G8 L2 x% {" y  P) ]1 Z/ H8 \
! D( e' N+ V' b) K4 E7 _# [        /* These pins are definition at <mach/mux.h> file */
3 {7 `2 j1 g* z$ h2 l1 }  W( H% `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
$ J$ v6 p6 t: x& @. _2 q; a. W
        -13 j/ l  U( }* p) G0 @1 z9 V: T
- R! d7 N1 o! n
};! C+ Q# F7 A3 D3 |, n8 _
$ [; ~, |7 K" w& G6 b( m

5 M4 X  T' p& q/ `
, {# C6 I, {2 D# s9 A4 Lstatic struct gpio_led da850_evm_tl_leds[] = {
# S3 x) i% X9 l5 O
+ j- @  U* C" v& t$ e% v        {
- m" w# s7 x* m% a' y4 A) ~% u; w6 Q$ Z. M# }5 l( Y: g/ P( S
                .active_low = 0,5 w5 Y/ ], J6 \3 A; ?

0 C& u6 U& T6 @% u; O6 Y* @                .gpio = DA850_USER_LED0,9 N  H3 A. S% X% i# \( e6 p" z7 j
2 e/ r: C7 ^3 y9 V! ?* s* u
                .name = "user_led0",' f/ N, p) H' P5 ~, l

8 o! Y& W$ z7 m; Y! n                .default_trigger = "default-on",
0 N7 L" R, c' g
# s8 z& n# K! G  a+ K        },9 ?! d" N. G6 ~6 m( [
, x  O+ R" \" N: M$ A' s: Z
        {
6 `$ B; Z9 P6 {" Z  M$ E
: l( ?% i; [& J) d6 k$ [  l                .active_low = 0,9 \& h+ ^" @1 U8 ]9 w

7 e" U' N1 i- M# D3 F5 l; o                .gpio = DA850_USER_LED1,3 ~1 W! D2 C! P
2 o' [8 D5 q3 D) N8 k
                .name = "user_led1",
+ ^4 S. X& w- F0 B. v+ [* o! Y4 _2 S( `: v# u  L
                .default_trigger = "default-on",; u, {- X: R+ U' a' J
7 L! k8 P8 h5 `
        },) h9 o  O1 f# A+ w0 m0 x

9 c! B* x6 d" |4 _; v! H        {# t4 W( p2 G: g

; J! J! \7 K8 p( k/ u' l2 E5 Z                .active_low = 0,
3 E) m0 A$ z, B! j
; N( ~" @2 n$ D0 G: X$ M                .gpio = DA850_USER_LED2,
& b9 |2 K5 f7 k4 }$ Z9 ?* c
/ d6 h1 j7 x! C                .name = "user_led2",8 L4 z, e; V  r! r
7 W; [  X! z/ u: n! L9 h
                .default_trigger = "default-on",
' k3 w" T/ k4 C$ n. u% }1 A5 C# M) n1 V
        },( k6 H& G4 p/ m7 r7 S" U
8 F# m2 y6 \2 {" v6 p
        {3 D  X) U. `5 C( A/ C
1 u7 g- f( [( z) ?  z* j% W2 V
                .active_low = 0,* R; V+ S/ s  ^1 m/ F- v$ u; d2 l

8 s/ h( D2 n' ~; i6 L0 W' {                .gpio = DA850_USER_LED3,2 m! X3 v3 f3 d

  l9 }/ u/ I4 i                .name = "user_led3",
6 l# v0 L4 v! @; u) g& M& j: {+ M
                .default_trigger = "default-on"," M: ~2 [; B' ^0 {  m

3 N6 _5 q* j- m* {- B; R" v        },
1 w2 A( ?* h3 S) }# @. g, Y4 f8 q* }
        {
8 j2 U5 x' L! G9 d! w% N0 C+ ~' |% E- _, E% o% z% {5 Q2 g/ q
                .active_low = 0,( o2 S* W# B# a8 k$ h2 L, I
+ ]. o. H% x4 B) T) j
                .gpio = DA850_USER_LED4,  R1 I  o, ^. Q, }4 y; U2 i
0 E" ]! W) z  }9 |+ X
                .name = "user_led4",8 c1 U6 G; h( g, v0 k
& i0 W( E( [# u+ E6 n( ~
                .default_trigger = "default-on",
0 ^( i3 u& L) F- T& i9 b& \/ j8 I# o5 V! B+ P4 `
        },
6 d) J+ {: t8 J6 I+ {4 y
9 ^: ^4 L% V& i1 _        {
0 P; b3 n; W' R' _- J
) w4 q, B7 n- Q6 `0 g, ]6 N                .active_low = 0,# n1 E+ q; Z& C+ u
  o/ A7 U; ~0 a4 k! D" P
                .gpio = DA850_USER_LED5,% r! m3 M( n" `

% V3 w! P" o- {0 j                .name = "user_led5",1 w- e+ d# a9 `  q; N6 Y2 z

3 p. i/ F3 b; V9 F6 ?                .default_trigger = "default-on",; l1 A/ M4 I! }5 q# u$ c, J5 o

9 a' ]1 [7 j3 ?2 G0 D) d        },2 P5 u% m9 G3 L' Q$ k+ l
5 b( ~8 c( j5 j+ D( b' I3 T
};
! n+ S$ g( e& p6 Z9 x' i. H
3 v% C; d  @# f" L4 o- p* o( A' Z! E$ M5 b' n

$ T) X+ h1 z- u, Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% U7 \) B/ O& Y
2 Q1 K6 e: q9 l/ Y0 k
        .leds = da850_evm_tl_leds,( t$ h, L! s  ]+ g

. D, q; s7 [- Y/ b$ M5 ?5 v        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. H6 r, J' v4 `6 t7 G. {

9 C  f( r( F: @) I) A3 a$ S- b. R};& G" k8 P# z+ u' d( i; O. \

& h# X, {4 b. ^; @1 }# d; m- _5 k
( e- l, m( ~; W
  V" [9 n4 J6 J  x1 ~static void led_dev_release(struct device *dev)+ Q' H1 B8 }* b

/ j: b. U' B& q. D  c+ \{% C3 f; p* n) ^) u
) L" S! T  L4 e6 B
};
  n% y& {* j0 S9 l1 q" r, b! V* w! {6 a0 E

7 d; C% z+ u0 |$ q! Q0 |7 E0 O9 K$ D. O# H# g
static struct platform_device da850_evm_tl_leds_device = {* @4 O- x1 m6 |3 t

2 U# R2 n' i4 M) N% n        .name                = "leds-gpio",
# s6 u# _# j; _6 D$ [7 P- Z5 y+ u" ?$ I2 T, e. G$ m
        .id                = 1,. L" f5 }7 _) v1 ]$ h

1 n, T1 r0 i# {5 G, g        .dev = {% E5 o4 s6 }+ C3 X

$ F6 @  }. e9 V' W5 P1 @* [                .platform_data = &da850_evm_tl_leds_pdata,( n# Z# ?, A% u# z" m* t
1 m: @( i3 |7 u7 u% o$ D
                .release = led_dev_release,
9 J9 L; I; F/ [8 N! k
) T3 s1 m3 m% V9 c: q- M7 ]' d        }
. f, Z1 m: r' x7 ]4 t! t
; h+ N2 m) D+ L! z# ?& V- |};
, O5 \2 t! }+ d- u, z8 ?( f! q6 M& R4 {8 m% |: T! _2 |* P$ @- L' L( Y

" R- L& `: ^6 H9 _6 }* G* o
, @7 e$ X. i+ M5 Q# i2 C/ B8 kstatic int __init led_platform_init(void)
2 ]2 x, n1 c& ?& W% w* p3 t8 X3 ^9 a2 W. E' \  d
{
9 I$ T) N  V. h/ ^( p! f8 v' i4 n; t& c1 U
        int ret;
  V  F3 |; H& a) V6 D6 [( U# s6 G
#if 09 Y0 @$ x; V* z- |% l1 K% z/ B3 @

" A  S% V5 U; C' E5 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' d) P  b- n1 \: f7 g( h! v+ F- m% ]
        if (ret)
, U+ y# [' I2 l8 v2 w# m' q
+ P. Z8 Y  Y0 G: Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ F( y/ o- j" [. O3 D3 t+ @# D

4 i% o. Y6 ~$ V+ l; D; k                                "%d\n", ret);* u& [- z- \( @: |* V: U. T

; Q' V) s+ l0 c1 Q#endif
, c& m% x, |  A6 A/ R: X6 f% |7 s! y, ]4 m% b
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 S" W8 i$ Q. K/ _. f' b1 s- ~- ?$ W- A7 i+ f# a8 b( e  x
        if (ret)
/ Y! _3 B! }2 u; C. ?1 }! a$ j6 K0 Y; h* ^* ^. a
                pr_warning("Could not register som GPIO expander LEDS");! s2 `0 N9 N, w/ z

0 D# [, I) k* D- `        else* U) L( F  u  E3 z
8 B5 j7 n0 ?5 q. D/ e& o, q
                printk(KERN_INFO "LED register sucessful!\n");/ R9 W) T) L) B/ d9 w
* }  ~- m" W# d) d  n  X/ }$ k' H% d% k
, R1 \- A, v& k  y6 e

% n' a& }. i( A        return ret;
6 @$ d; k7 {" I* a" O8 D8 w! ]: o' D2 i/ {0 N
}' [% Y% z/ H) o0 V

2 S) F' x% o! a2 m8 ?! z) X0 K" F
* m2 P8 H+ r6 i! T, h% X$ F$ w
! l5 l; S% |, k/ t1 q# o" |static void __exit led_platform_exit(void)
. x0 [  G  c) s' P3 e! y
7 Q6 y% S, ~, A: W) m! B{1 M6 A$ [+ G9 e

. m4 q8 ?' F9 n& s! O' M- }        platform_device_unregister(&da850_evm_tl_leds_device);
- y! X  }& ]4 t
- Z# d6 V, e: S+ h' A
* O. y4 A, p  X- J6 x! ~7 R& F, C- T% f  x# P$ T5 {# d& [
        printk(KERN_INFO "LED unregister!\n");1 V3 t7 Y% W" M5 @

- u7 h1 S* G7 R5 s  h9 q" P; z% ~}
0 z8 v* J7 @3 M9 F1 J# _8 N7 B( k
  c3 o9 n8 y6 c' F: N6 N2 A1 {& a4 y- s2 `

% }% K0 ~/ n0 e3 [module_init(led_platform_init);  ]$ Y% S: ?% {  s+ p: i9 T

- F+ Z4 I2 n" w1 ^8 {2 m  L4 ~module_exit(led_platform_exit);
, G  b! y7 V; i4 ^1 q& B0 T
! g& n/ _0 l6 S, q# j- S/ ~2 o2 U" J0 u. `3 e

, W9 j, l$ W/ r& dMODULE_DESCRIPTION("Led platform driver");9 @( E# X1 p: ~' ~8 }5 T9 S( d
' {* ]  ?; Q9 v8 W: Z3 W$ n
MODULE_AUTHOR("Tronlong");: h" y2 j2 p0 P
1 A, P4 ^4 V# V* {, P8 b2 K
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 06:41 , Processed in 0.045171 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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