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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
+ O5 D( {! E, H3 t5 r! E4 V
( h/ l( I' S$ p; c. q请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的  @( |' w; M; L' f/ J. ]4 k

; L; E1 H2 x6 L0 W之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
) s$ h, Q1 g& h! ~* W" @7 X; K; K5 Z+ q1 y

本帖子中包含更多资源

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

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
1 F' _, ~' {9 |3 _" {linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

' j/ _) a, ?- @8 Z" Q/ B我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
$ `5 h1 f. y& _% ?#include <linux/module.h>) v2 V' t+ G1 x& z& T( [; n5 E' Y
1 N- k) a6 o4 }
#include <linux/kernel.h>
3 [0 N) x$ F- a+ R5 }' I: D0 W2 @) w% V7 t3 m, ~
#include <linux/types.h>7 g* g: s0 A$ T! j

* Q& _' g9 L  y4 b7 e' ?! e+ R#include <linux/gpio.h>
' B, e! `' W1 B' Y; H" H4 t2 m& D* c: R- [- r
#include <linux/leds.h>% z1 D: Y! C9 M: r) r
5 e, G# ?4 t3 W3 s; ~- G- r4 M, |
#include <linux/platform_device.h>
/ E# _6 {8 s7 _& |) f' }1 z( N- N. X
. j7 i+ ]4 U! |
6 H/ F* A& a' s+ C) \" k0 W! q
#include <asm/mach-types.h>
1 n0 I5 S4 H, B" L8 Q( e/ w* h$ A# j, @/ o+ |& h' {- h* I; ]( C
#include <asm/mach/arch.h>7 R9 m+ l' ?7 W7 s

! k: h$ k" t& f; X: G#include <mach/da8xx.h>
; K+ |$ j! E6 {0 u- `5 _% B* r9 b& O4 R6 p
#include <mach/mux.h>5 d& e/ c6 T1 y1 |
% @. X1 ]1 ^; v' h: \9 v8 a

+ k) [9 D5 l0 o8 ]  E* M* c5 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; ~8 z  K: H! a) b! X
6 A3 k; q$ F" O: v% u6 F0 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): b$ I. ?, l+ k3 I$ `8 ~/ s

9 O" G# ?6 i5 x: i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' Y. d* m4 U$ O
* O: g4 a2 U* _9 D* m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ b. d$ ]# f8 ^7 @6 @" F
" H8 t8 @, V3 J* S#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
+ V* W" `5 ~3 Z2 i( @
2 R8 S- c) {$ w% g1 P#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
% _, _. K! v0 ~
" w- o9 _/ m. d4 Z' l
) A" j) p6 W) w2 `$ E' A8 a1 g
/ x9 z* w* g* w6 c( G; j/* assign the tl som board LED-GPIOs*/
! `  R( F. z) Y; R0 G
- s& i' q3 {- ^2 M  |static const short da850_evm_tl_user_led_pins[] = {
- y, i7 u6 v# @  q7 Y
4 H$ T% Z3 m$ r- c        /* These pins are definition at <mach/mux.h> file */' }" Z# U3 X& u' E& G

# b3 B' A* s! X% L  }4 O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
5 q9 S& d  ?7 f! q# s& i
& A5 G& Z3 i4 }        -1
( w! F3 k+ M1 M) ]  c  p4 e" z+ ]1 f1 q% w" i! P
};* p* z# D% K6 c5 w) B8 d- f4 d
/ P) k$ _7 R: }1 Z

0 h" n. K2 t" w, E2 ^* F  r1 i3 i! R5 J0 M5 [
static struct gpio_led da850_evm_tl_leds[] = {; X9 j  R; I2 w( {
  y7 z& O$ O2 B% P* f
        {2 b! l9 ^8 @( Q2 U( l

0 N. b( ^+ m- Q1 k6 y0 K) t+ D                .active_low = 0,
' C; i9 [/ u% W' H  l% w. d( ^, Y" Y& e
                .gpio = DA850_USER_LED0,% |3 K$ R  s0 ^$ t( Z3 A

3 U2 L* q0 s/ u  m9 a. {' m                .name = "user_led0",! }3 t7 h" c1 Q  N

' J  J- ~* G( l+ ]                .default_trigger = "default-on",
: k  G& C) D3 k% ?: [1 a# }7 P- M2 W/ \: A
        },% z  ]2 u- i1 }% V- `$ a# ]
) q; @! T" x0 I) ~9 Q
        {
. `7 Q- w: v$ S( X( n0 m" {! u
' Y8 j0 p( i9 q8 q                .active_low = 0,* i; X+ C. ?; G" q8 u
7 B) X. f2 v  W0 o5 b
                .gpio = DA850_USER_LED1,
2 k: V3 o: y2 F; M% p  @( a' [4 V1 a
                .name = "user_led1",
% L, M1 E# A; W6 [! w% W0 Q1 l4 R/ t3 {& }2 p& k6 g& M9 D
                .default_trigger = "default-on",
+ ^4 P) h+ V$ q: V& U8 k9 x9 s) {) B5 v  q' q7 z
        },; S* [# I3 g( j  M0 A

, q) E2 H: U( h6 |        {
' A, K* E% A# S7 Q9 h
& f: l: g4 b: \" t                .active_low = 0,
! L8 w8 [8 ]" `; W
0 Q+ R5 R# K2 P1 N                .gpio = DA850_USER_LED2,7 G% `! [: @/ ^; M5 A3 N
; t/ N( n5 {2 L* e
                .name = "user_led2",
. N8 b" R# M$ k7 \8 b/ {6 e9 j0 \) i* S. l. m
                .default_trigger = "default-on",
8 B) n% ^+ f, J0 S7 l4 J6 Y( ]& j' @( \1 L
        },
% b" |! X& P9 [' p
3 o7 G1 r9 g6 O" [% O        {
- H& v! B$ f+ N9 ]' r
) k  ?% _8 H1 U2 ~                .active_low = 0,' s& m' t/ H+ E; y
( l: B/ U; k% @5 ?3 F
                .gpio = DA850_USER_LED3,
: t$ X) ]8 f8 K- n9 b; D4 s/ a2 J7 @# [. Q" u+ a
                .name = "user_led3",
$ F6 f* K7 v4 V2 k
5 l7 V8 `) \. O                .default_trigger = "default-on",
& P) u, A8 b9 u9 [4 \
) g  P5 G% y( a9 t, r# p+ [# L7 A        },
3 n: W" F2 N. Z+ H7 s+ h
/ ]& J3 l* ^6 g8 Q        {
  K- c& S: U! d5 `4 T% s+ R( z% d2 o0 L
                .active_low = 0,+ b$ B5 P  [* Q+ o

% w* {" X. g) T2 D                .gpio = DA850_USER_LED4,
- v) f: K6 V# T0 ]/ f2 L2 r! _1 E% D( w, z2 V5 L8 i
                .name = "user_led4",. d" V. |3 N* R& ^2 K
8 [' a5 @( l2 w7 i8 H0 o' J' F
                .default_trigger = "default-on",
3 h7 ?5 ?) f" v: l0 q( k
4 J; C3 Q* p* K        },
, h8 T* k% G1 h! o0 Q1 \. \& x; D$ C- K) c
        {* B9 j$ h7 n8 a8 W& g) v9 b

6 _8 }5 m/ A' a% ~; o+ W                .active_low = 0,) F4 ^0 h, n. S) H# z4 |# H1 m
9 T/ X! s: Q3 C9 E7 R) X2 N
                .gpio = DA850_USER_LED5,3 ?0 a9 \" \" o( S) m

& g- n- o4 T5 v/ F* }7 x& z9 u                .name = "user_led5",3 R. y, r/ y9 n
  Z2 @  k1 C) I/ C
                .default_trigger = "default-on",, \  G+ b4 u/ h) j4 t2 ]  ]

8 S) V7 A- P+ I3 Z( w        },( F  W! `4 l; Z7 v6 R) l% B9 y2 s9 v: C

7 P0 L4 U+ H6 ]- B};
1 y- t9 |: n2 u4 w8 O% I
4 C: j; n8 B2 X! W% |1 w: H  X2 k: M2 k
2 e$ ?2 [  B# u6 v2 i  N& e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ D8 \: Z+ w: ?! I9 O- g$ K

, ~) o, ~% e7 U  d/ ~( `        .leds = da850_evm_tl_leds,: q9 `1 O. a* G% m5 \
4 Z+ ?% ^* c# ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 I3 I7 N/ C8 J/ Y

3 W8 f$ M4 d6 U7 |};
. `) Y# R) M* ~7 S2 [. J2 g
" a- z0 U% F6 j+ g* x, r4 D+ z' W  p6 C: |0 s7 {

, b9 @4 m% b( a) _4 ~5 p( T1 zstatic void led_dev_release(struct device *dev), w) U; [  [1 w/ A0 X
" G0 b! h" a+ \! a% h8 P
{
6 L2 k1 h* [9 k! ~% y, d! x8 l3 Q4 Q) _: Y0 I+ J& e  Q& j0 j
};
; ^% r* A9 I, {
( N3 J7 c" M! X& N/ x  u, j, @$ h/ U7 I, k5 R/ C3 O

% X1 r. |. R8 K0 ^0 C+ Fstatic struct platform_device da850_evm_tl_leds_device = {
; o, L1 A) ~# \0 u# h
2 l7 B% y  M+ O0 [" S( S        .name                = "leds-gpio",% m8 y& m) F) _5 J
  g$ z5 T" ^* O" L. s
        .id                = 1,+ T; Z$ r: g% r5 N) a
% n! L0 E+ L6 K- X
        .dev = {
* O3 _: V3 d4 Y6 @% e
& G- V% J# l+ X6 s2 D- ]6 _                .platform_data = &da850_evm_tl_leds_pdata,/ L, L5 y$ M+ i* t
! q1 p0 ~  r( Y- M, o+ J9 f# B4 N
                .release = led_dev_release,! L5 u4 A" b4 ~# z* G8 T

7 V# i# K! W- O        }
0 E& h  v9 ~+ |
0 B# I& ?. s* ~( J# |};
, q& H3 x9 \' {) f# @6 H& e
  l' {8 Z5 y  W$ v0 f3 l9 {$ e) N! d1 z) p5 S" ]

- B9 L  d- P9 M4 A4 n2 Wstatic int __init led_platform_init(void)8 m/ l. `1 l8 g" C0 Q  v  V8 q

( t  q; X* a: i3 S' l1 x{7 T$ p% L# R9 \: a: ^
" o- C, C* X7 G9 C
        int ret;/ n# N2 ?6 J3 a

. t# M4 k* Y1 r4 E, d#if 0" ~# y( k+ y! V& L- p! j! A

$ M$ j8 k4 m  x# Z* v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 c, }/ D& W$ I: G

% c9 X0 |2 {% c* ~, ~        if (ret)' Y# c: t" _2 v

% U$ F& ?" m: \: e) ?0 x" |3 ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# T2 f9 t) [; V$ _8 v; l  J
& s$ j7 Q. A# I# ^' J& M                                "%d\n", ret);; O! t/ a. z8 x6 h
1 Q. X$ q$ T$ Q7 q" [
#endif
, i. T: b1 o* j$ m2 b# V( x% J+ {6 v* J- F5 a# x
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 |" K* J* l$ e9 y# u+ X/ \% S
. r6 V/ W9 P( r6 Y- `' c        if (ret)
9 q  P) A; m# d. v& g$ O( p9 m6 t: F7 y, U6 o
                pr_warning("Could not register som GPIO expander LEDS");2 U& ?8 a! q; h' J, `

9 h3 i2 ~9 i! z0 d/ |        else
4 u, a: O/ `6 x/ d2 I( u
/ ^5 `0 Y- q* `  m% v5 N% f# z7 l                printk(KERN_INFO "LED register sucessful!\n");
0 A! E6 ^+ @* F8 E
, L9 ]. [2 i$ g) W/ a1 f, c: O( w6 R! X, \# n: p! F
+ [; J" x, t2 P0 g/ x2 X
        return ret;
3 S6 o% v& w, ?/ f2 X* R) j& a9 U, p$ b& \+ I
}
1 U& c: {  {  S: i/ E* u5 a$ |1 j4 {4 r3 z: \: u; q

% y3 O, }) w2 B, ~  V) T
* i: m$ x# n2 N3 fstatic void __exit led_platform_exit(void)
7 ?) {# p$ t! o1 z8 @, J
4 X/ i; L. R+ w1 K+ Z5 A0 g{  F) b  c5 L9 i1 q
  Y' N, {. ^9 N
        platform_device_unregister(&da850_evm_tl_leds_device);# w. X+ Q8 P' J3 d' ~: @

% V+ R& ~8 {! G/ }
- M1 ^) V! P+ x0 X2 S- D* T! c% P: A
        printk(KERN_INFO "LED unregister!\n");
1 q6 v; r5 y3 r$ y% Q% h$ d7 @  t: L1 }- P
}' |0 A2 H0 V+ [- \# `0 T! l
: N8 G7 H  N& G4 `& ^; X# Z. O; n
- i3 a7 q! X' S5 u% r0 _5 W; b" V
. m$ W: g1 e% M. k0 \/ m* v
module_init(led_platform_init);3 q: I& A. A/ `- h2 V& @
1 x# f3 L, V  Q& ~4 `  u; S" q
module_exit(led_platform_exit);& S4 T/ ?) z" l, L
) V6 u7 Y; z8 I1 h$ I* `
  N+ D6 y0 o4 J8 `7 U
8 g5 b/ h+ O  U& ?" F( @8 ~
MODULE_DESCRIPTION("Led platform driver");
: r, @4 a* ~& y( x0 q: q+ D* F. ~* M  k6 R
MODULE_AUTHOR("Tronlong");  n: Y4 _4 D6 y7 K

- }3 X$ O2 T5 l; T% ZMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。: H# V) s+ g: j3 R+ D

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32# L, m  I4 @! J
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。. o( V  D% g+ J2 B2 A% A
...
% u# ~0 E* ^+ L4 u$ s& c
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。) M0 w( D3 K3 b  J8 w; q
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-6 03:06 , Processed in 0.056192 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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