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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
* J# \, k$ m9 F# p; M8 R* S# ?. S0 v; E& f; m8 r+ c
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的# l  [: j  F' \# W2 L+ ~( [1 M

1 f; u7 s4 c% R/ R之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
3 g7 J, g- b! m  ?1 _/ @3 K5 O2 P9 ^& h- ^

本帖子中包含更多资源

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

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. ]  Z7 r  f( V/ v
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

' \/ d5 [! i, k我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
7 k  M: F+ O' f# ^' g7 W8 t+ w#include <linux/module.h>& y8 P3 \4 L' T4 z- _/ X
& n) I3 b$ R* Q1 T  g! y
#include <linux/kernel.h>3 u  J( F( T4 c$ J8 Q
" _0 E* C2 H) `5 C
#include <linux/types.h>
$ j  J$ w+ |9 o: s5 I) U5 L( d( f1 w4 y# H0 V- k
#include <linux/gpio.h>* y9 z/ R# v$ c- l* p: |2 R
0 K7 U' J6 U  c
#include <linux/leds.h>
% E9 {4 a- A6 i% f) d
3 ^/ }1 P- V' G* I( \#include <linux/platform_device.h>4 P) o& v# e, B5 _1 [+ N! {3 G: ~
! `- d* L: c0 `# J- Q
8 @3 M5 ~5 K/ D" t) r
. p! }- F# K( e. _. d
#include <asm/mach-types.h>
$ h' i& e. F: T/ _3 N: s% c
  A( x8 c% K! g' S5 s8 X6 M#include <asm/mach/arch.h>
7 V' X5 _- K  V6 I6 [+ V4 d. ~3 i, U1 _. T$ l
#include <mach/da8xx.h>
3 V% T7 M7 W$ t( _; d' r
( I, p" m( Z! e1 L. O: i  }#include <mach/mux.h>
4 p8 @; J; H' z" X$ D% |
. M1 Q1 ?, S. U( n+ a# B
8 p- ?2 m$ s2 K2 {! `- `% C3 W1 q9 X) L  _0 E7 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 U+ z9 R8 \0 J- ^4 ?: U. U
* H6 I* W, }- o8 _3 k' \5 m. a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! ^5 s; ?: t$ k7 U
' s& |% s) B' B( l6 p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ H5 o) C1 r, l# j) j. y8 o/ q! F$ K$ N7 U  G! Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- Z) j3 W% x8 }4 o/ }3 M6 m+ X. z, K
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
% C5 q4 e+ n/ y4 L8 f! k6 G1 `! ^- x! g+ Q! N" ?
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)* k2 B% n* Y  [, u

9 ~' o- s9 j, T4 c7 P( x
( m* T# a% _8 E; ]$ {3 {: i' X8 M* W& w' |/ N) ?
/* assign the tl som board LED-GPIOs*/  ?) r0 i7 _( U
& E/ v! R7 P0 M3 w( t+ B
static const short da850_evm_tl_user_led_pins[] = {
# I3 ]* n! J( i2 Y  Z# y* n3 n" B- U9 v" j6 b+ u
        /* These pins are definition at <mach/mux.h> file */
7 X; k5 b9 ~. `: q; s" r
9 q- n' M/ K- [0 g) e) E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
! I6 i% {+ u6 R3 m" o6 r: j. }
3 }; S+ ^' m, N0 F: f5 ~- k' M4 G        -1
; R0 y6 ]6 Z; b6 q4 P8 _- {, x9 u3 E+ V( t" o6 z1 G
};- C1 l7 W# h4 b! m7 L# p" F2 z

- B" C* N! B3 Z' A4 K6 F/ k" ]# @- C# }7 y8 H( S
: R8 [# G- r2 A8 P( t: U0 z9 f
static struct gpio_led da850_evm_tl_leds[] = {
. ]% {1 X% M+ u
& }  E0 o% u- X6 l  t( p        {
& K, S1 U; S, q% }6 f: [7 T% e' c, C8 a" R! i" N
                .active_low = 0,  b) K" X. M" j, ^' N& m& n8 _' t

8 b! u# ]5 n% L" p6 u3 X! k$ ^* T7 e                .gpio = DA850_USER_LED0,7 Z, ^4 Q5 p: [0 S  X  `: t
% ^, ?6 [5 E1 R6 C" u: k6 P
                .name = "user_led0",
1 Z: u; `1 l; C; k% Z
$ e; O2 G6 g) S; a4 ?. S                .default_trigger = "default-on"," s8 m& R+ h' }7 t

5 F6 H/ ~! F+ i' `; ?( S        },
9 U0 w8 d8 H' q0 y$ e7 |" E' U4 p$ e- d" _
        {
- |  K9 j; s  |- n/ [; P4 b& ]( j5 u/ k" j
                .active_low = 0,
9 A6 O/ V! i: y9 M# R! A% x5 Z) {/ y( @; k( ?
                .gpio = DA850_USER_LED1,# v  c( k8 @* C* q. T; t

, ]- j9 Q* _5 }# t  C- k0 y                .name = "user_led1",2 _! b' n$ G5 k

& S7 G. o; }, X9 J% V2 g                .default_trigger = "default-on",
9 V/ l' U3 x0 h5 t4 b* E% O' I5 k) o
        },
7 M# u& R+ F% x3 Q2 n
' V4 u% A, r+ N3 j4 ?        {
9 U4 C+ ^6 X% D4 X7 Y! ~- t, M" B& E1 w9 k+ z+ Y, H) S0 P$ i
                .active_low = 0,
$ A7 Z% n) F# k2 b. |7 w" A2 z$ D  a& }' r( r! U
                .gpio = DA850_USER_LED2,! G2 v5 j% A. j0 u+ l" ^

7 m% S. [- {9 `) M  w" M# L                .name = "user_led2",
2 l9 a8 w: U3 j% }+ \* `6 l9 K" U* M. e+ V$ _% p' S
                .default_trigger = "default-on",
8 \8 H* q; i" N/ J( f! w3 x1 R* C
9 u6 q& n  l* c1 d: i, X        },3 m% L6 N, d' x+ @

) a* k$ z9 o* _. D1 H        {
% q4 k! w9 c- W: f; s, |8 c9 }
' h" f7 \+ M0 ]! M- X6 a$ S# E                .active_low = 0,9 A. w6 v; H% L( k) `0 b% c

+ k6 a7 G4 ]# z6 Y1 e                .gpio = DA850_USER_LED3,
5 ?! P/ t  O; J
" ^9 C& ^$ p  t6 ], F. v- A% ]                .name = "user_led3",8 X, j% n) P: X6 n8 P+ C- S* d- f
& W' m; R! f6 s9 m; }
                .default_trigger = "default-on",4 R. H9 C( r" u! K" P
) b; L4 Z1 v0 \5 j# J0 ?, W
        },
! r$ q- `6 R" f$ @1 g- j5 B' i9 G: U' g) g
        {
: V: x& r; O# S6 q9 Y' ^( A+ x. ^& U# ^6 Y( C( c3 q3 o
                .active_low = 0,* Q8 V& t8 P) Y4 y/ ^- t; @
+ ]" k# E3 H1 ?& N& ?
                .gpio = DA850_USER_LED4,% x9 e: H- Q! r

+ T; X5 C5 g+ q' o( U: y# Y                .name = "user_led4",5 D9 h" e( f" C

5 ^# m: @+ |( Q" _                .default_trigger = "default-on",  m- F0 V! @6 Y1 ?3 e
* A/ n/ K+ F" d( P2 a
        },6 n! \# k) H: o

1 a7 c5 r2 H3 }5 z        {" O6 @, }! Q8 |, S* E5 x

# i, |. Q4 R& C                .active_low = 0,
% B2 R& b( B9 M% \
6 j8 n0 E  a9 ]1 c/ O4 X8 }                .gpio = DA850_USER_LED5,& z8 O1 ^# e- v# R& N/ R% s
: j2 @* H9 G  _: ~, H
                .name = "user_led5",
! L* J0 _( e' [2 }. r+ o$ O1 R, [2 w" i; w- r5 \
                .default_trigger = "default-on",- b1 q3 Q3 v, z
+ z( n& S9 B+ Y! b& M
        },
. g6 Q- O+ G, g( V5 j: C; C
2 e4 r2 g8 g+ |! W};
& a4 s& w2 P# m9 x3 y
1 u! I; i0 h4 [# o2 c. {$ ]5 w8 i  r7 M' W2 }' n' `
, u  @6 J( I' j& Q/ c7 e. D# j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 b  b7 w9 Q- Y; F7 X# Y7 Q# N" e6 y" k
        .leds = da850_evm_tl_leds,
+ |( j& r% M( y, h4 t$ t; @7 I& \! V/ P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( l' c+ Y, d# v- a/ y2 }2 W4 f
: a- e7 }: l9 e# K: R+ n};
+ \2 Y: }1 a) O' k
9 e1 y; y7 k. G6 U
& l0 y8 ?3 Z0 b6 p) a  l5 w; [
, I- S! T) b! x1 J1 j, wstatic void led_dev_release(struct device *dev)
; k/ Z: f3 J6 N/ U4 l
- i4 k8 `5 Q6 d/ f2 Q; e7 U{7 E( ~" ?! }! k" V6 e- q/ q

, x5 u* V9 U: q4 R) b% O};& z$ Z* Z6 J) `. ^/ j" K$ H1 \

& D* k6 {' w9 n" j
* o6 e: V9 b( {( g- z% `; u* Y, Y2 z$ z' l
static struct platform_device da850_evm_tl_leds_device = {! n0 H0 A& S; I. O) `. G

! m2 t) n% K4 a8 Q# S        .name                = "leds-gpio",2 K. B2 T. Z9 z" I9 M( i7 _$ c
% V4 X/ L& Y% u+ q4 k: B
        .id                = 1,
3 t; c" `" @+ O, |
' T) ?6 X2 Y0 S        .dev = {6 Q3 S. b! ^* O, |, s9 h
. J9 f8 g6 u' Y
                .platform_data = &da850_evm_tl_leds_pdata,- H9 c& h0 z: m$ x
' G  q8 a, R9 T9 m3 E
                .release = led_dev_release,& [& `0 j# _  N9 q

! a- q8 b& s0 c        }0 l- H4 G; F1 t# h  s8 a

" C% \8 B, ~4 O* L& r};* A! j: \! t7 I5 s) k2 F, v+ j
$ T, \0 T5 t+ f3 b; J

! M& t* C% m& F
2 d$ q5 V& K/ b7 C( R6 ?) mstatic int __init led_platform_init(void)$ k' e" [9 B' F2 P( D! V! P/ X/ t
" W/ z! t2 w1 j- Z
{
# V1 A' G1 t2 e4 r/ f$ v4 ]8 l2 y' J# \* Y* o2 _3 w# O5 T
        int ret;8 h2 W  X5 U; T! Z. Q

; I6 H' ~! H7 }" H2 e7 d#if 02 N" M3 ~9 s2 Y- {

' ]9 F7 i2 C; d( a. G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ l; i" F+ R( C9 Z. N

& U5 z. m# U, P2 x9 |9 C& @        if (ret)
$ J2 `  l0 T9 L: O' L! C% T  l
  E7 W( f/ J* R: N, k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" J  J. R' P7 I6 B
4 h2 ^/ [: R6 _                                "%d\n", ret);* |& L- C+ A- H, H; b- w2 L8 T
! X! q3 Z3 l  R6 x! V  j! s( _9 T
#endif/ }) I9 Z9 f+ l! }( b% k

6 S* r3 H3 g4 C0 w+ r        ret = platform_device_register(&da850_evm_tl_leds_device);1 p4 y, |- n4 S/ b$ y" X2 G

2 _$ _- H* U3 u6 b- q        if (ret)% Y- b" S# ]0 ]& Q  @4 y/ r

8 x1 u5 a: X( h+ h8 p4 y: |% M                pr_warning("Could not register som GPIO expander LEDS");
9 [( n4 A! r8 o0 k5 p6 P" j) k# _# Q) p% T. P& v1 r3 k
        else
$ w7 z4 V; N: w+ k. s
' r% b/ W) U& |1 V6 D  {* i# L                printk(KERN_INFO "LED register sucessful!\n");
4 a1 |- [( \) B6 r- @' y
# L  U, A6 n+ J+ |0 ?5 M( `  g$ R8 c4 `
: M8 o8 _) o2 P5 y: K- J
        return ret;
6 }3 C0 P+ L& F2 M( B% N
0 T% z3 Z! S" }6 n. V, t$ Z# T}
2 i' T$ B% T; U/ J$ S8 J2 ^7 ~- a. O! }) x" Y) z

1 C$ A- G8 {/ X! L& M6 [/ B# N2 S
8 j, j; Y$ t% @  J$ lstatic void __exit led_platform_exit(void)$ b' k7 f, _3 O9 @  E6 p% K
4 E6 Q: Y" ]7 p7 C+ ~
{
$ k* q2 n) W2 f. |$ H# i5 [8 J
" I/ A! P* ?5 X( Y4 X9 q4 W9 s        platform_device_unregister(&da850_evm_tl_leds_device);
6 D* d; u! |. j. M$ h+ s  N
( i: `2 z" o# f& b& K! _6 D6 C6 u6 w, D

4 D3 x" C. }' ]# _6 k        printk(KERN_INFO "LED unregister!\n");5 `0 D! k9 g9 i% [1 b7 G9 E# k
7 J2 Q# F8 X3 D/ t' Z
}" M8 v' ?. _8 F. l) E7 s8 T
. H1 ]0 z/ a9 T! A  B3 w
! B, I: L: J% a% j5 K

3 f2 V* @$ A2 X. x' U2 {module_init(led_platform_init);9 a3 ^/ i& D, {9 _1 J9 G' y/ G
5 b, `6 [* }% r, R9 b$ s* B
module_exit(led_platform_exit);
$ b% X, b" h' {$ T$ {# g
( B/ B. A% A$ c4 ~& H) z' c
* P& L" O- B, P5 K) Z- c& s' R9 r6 w9 [
MODULE_DESCRIPTION("Led platform driver");
( d. J2 Z1 d- n$ x! x4 V7 Y6 ~* u! p* f# k7 B
MODULE_AUTHOR("Tronlong");( B. Q* [4 [5 i1 s& k- j) x

4 x4 X9 G6 S# o) y! FMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
6 T$ U2 s/ ^$ L

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
( ~  t4 c9 I0 J. M, f$ v9 y* Z您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
8 W9 _4 f$ k: L+ r- _/ j ...

# m6 \2 v# R9 s& m$ \/ J好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
- i2 Q+ [5 Z  _* shttp://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-15 07:32 , Processed in 0.044029 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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