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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 ( D5 S5 t4 {; g7 b7 o6 x1 I: j% r

2 M# N. I$ O- {8 t5 ^, s% W请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
! M3 [* l' o$ p' J) |) l( u, J) J6 Y7 d
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?3 X$ \9 y+ Z7 o
* S0 {$ j, u5 J2 F' X/ A

本帖子中包含更多资源

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

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
& N9 b8 C: O+ e9 a% M. r. ]linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

, S( _1 @( L3 T/ R3 A我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:+ g2 B  m  k- B) `$ w
#include <linux/module.h>- c& S( J( d& {5 u. ~  u! ?4 B( ?

! }) d# f" O) D; D6 U  V4 d+ P#include <linux/kernel.h>
. q' {# g; y* T( l: d& ^0 D! C# o. }/ z+ t' j
#include <linux/types.h>
/ Z* c1 Z, y1 e( E
- W, @% F. w- p#include <linux/gpio.h>
) `) M' J8 v, V' _2 Z- Z. U, w+ t- Q2 @, p$ a
#include <linux/leds.h>
$ d# b7 S5 }' {& Q! l3 A" m* S* S5 P! |& b. }8 X# O  Z3 w
#include <linux/platform_device.h>4 R' h2 ]. ~3 b9 K
; N& _0 n% R; W
0 @, S( R; d. P5 m' J

) }) y  L0 Q' D% A6 ]#include <asm/mach-types.h>
$ v0 C( C; h+ \
$ n/ H6 f6 A( i4 R( |! p#include <asm/mach/arch.h>
5 m/ D4 x4 `, C4 d, S# C' h" Z8 {" h5 S
#include <mach/da8xx.h>
: A" W4 s( l+ C$ H! s- |8 O" P4 R  A
#include <mach/mux.h>
8 H/ D4 \0 U7 \9 G! D5 N4 v! l& _& r# O$ u0 Z! A! S
8 b, W% S+ p  g# h7 r3 I
6 }) N% y% ]. e$ R+ v0 W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, M4 C$ s8 O. u1 V2 J  G+ g% ^! m. R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" Z0 p  z+ h) S' r( q' R+ s7 B/ m2 _; g5 `1 _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): d( z: c' m' \

# r& e) U& Y0 d3 n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 D8 {! }, o& D% A+ p
$ c" A5 ?# p9 w! x: u
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)/ V1 [0 I1 ]6 m$ J4 |6 f

# r( [! C" X  _+ P#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
) a* I6 t* W$ s2 Y- f$ F$ e; y( p) D! E# F" k

2 J: y. j/ X2 e/ o! j% P0 D/ Z
) j; X4 K' @9 T" u" |+ c/* assign the tl som board LED-GPIOs*/+ {( Z/ u% b$ S6 w

3 A4 ]/ F. c* e% f8 u! ]4 [static const short da850_evm_tl_user_led_pins[] = {
0 e  |3 U- q. H' d+ ~; x; \% B2 ]8 ~$ G! H
        /* These pins are definition at <mach/mux.h> file */$ x. c* c( j9 z
8 `1 C& M# ]3 ~/ _: l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
+ u: s9 u5 L& s1 V$ A) T% K1 e2 Y# b
        -1
6 K3 n# v$ v3 w
, C4 m" e- z9 r) A# i6 Y8 t. L2 e8 Q};
+ q# w0 |; Y- K$ c% E7 r/ N; s4 X2 w$ Q$ t4 u5 ]
& G2 V/ {0 v5 P0 g, ?

$ b5 h5 U3 I! d* d$ Sstatic struct gpio_led da850_evm_tl_leds[] = {1 s# ~* J+ p7 k$ {, i0 }

; K7 Z9 V& X4 P  E$ V        {/ `, T  V6 n/ H: g# Y2 [+ I

$ i& b$ g! @2 o3 @, V  l                .active_low = 0,
7 T4 N) u0 T7 |5 ?5 a5 G, k5 P- I8 ]# o; k+ {4 U
                .gpio = DA850_USER_LED0,4 m1 F. E$ p: k1 }( m3 G# d
1 P6 F2 h$ ]6 p% [
                .name = "user_led0",$ X- U: X" {, K

2 R  `+ [8 b8 ?. w3 p# ]                .default_trigger = "default-on"," q. c6 Y% U3 {, G
" z$ x+ U# w! {8 J* u
        },* p  ^) |: L+ O
; D2 W8 P, @8 ~8 i* Q1 A
        {" [4 H9 e* H+ H! F

2 Q) ^5 d  T7 C: t/ U                .active_low = 0,& K2 y0 Q: _# q9 }

. l" O6 ~% V7 O9 B                .gpio = DA850_USER_LED1,
/ L( y% a: H. U) A+ E9 O7 ]* f
. z) C; A8 b) ~9 x                .name = "user_led1",
' u+ ]' z4 H$ Q2 p; B* N; @
! r0 d+ z' P) R/ R# q                .default_trigger = "default-on",
5 G$ U1 Y$ \3 O! S. _/ c% t- ~: V# y# E' \- L
        },
/ h: g4 A+ z. i7 L8 g* L9 ]2 i; Q6 r: ^
        {
! M4 l  O8 r# C4 l6 e7 m+ Y) U5 }1 B" a- J( e3 \
                .active_low = 0,( F; l9 F/ {% K7 V. F) T

) C% `! ?0 C  V5 D2 N+ B2 H                .gpio = DA850_USER_LED2,1 Q' H" c# A' j& B( y

- c% A7 C5 s3 J& ^2 b  c/ m                .name = "user_led2",$ s! m: Q. F2 B  a0 X! J4 ^9 _
( Y. x3 |  E  Q4 k
                .default_trigger = "default-on",
: \) D9 j) C3 w3 W( y' k& `2 `. j) m9 P) ^: p9 I+ K
        },, S4 \' Y% R' F" N  H2 s/ H
4 U) E% }2 m5 ?1 {1 n' M; G
        {) [: d( W5 m2 M

% ~' F3 \6 x/ J) b0 c                .active_low = 0,5 q; i/ ]5 L7 ?0 u5 W
1 H( S" c- F" U- \1 k
                .gpio = DA850_USER_LED3,
- [, E* p4 u8 g7 A4 f* n' u
+ e  D) a* S5 u8 J& e) l$ l1 b0 c                .name = "user_led3",* ^, Y5 w% R8 u. o4 z
- |* [: K( B- x7 `  r
                .default_trigger = "default-on",
# x8 ^' i9 S8 w. S
! |. c3 z+ k( N; W% z& r        },5 Q4 f/ y  H1 U) f7 C' M/ n
% h% M; {$ l) K1 Y9 m
        {" f: e$ e+ q+ ]- ~

) k4 `: @) d  f, E+ g2 y+ p- ^3 P                .active_low = 0,: C6 M8 |" j+ J: e9 [9 Y
' [* z2 Y* n, a# ~; F
                .gpio = DA850_USER_LED4,* }  g" r: D4 o" q+ F$ B* @
, ^! t8 R. i3 E$ d6 B2 y) N7 |
                .name = "user_led4",. i+ _* Z* n: x6 E

% ?9 b! {- X+ }0 @: k5 Q3 z                .default_trigger = "default-on",
0 u4 z- F. x. u# [; F  Z1 j
' n3 z7 X& f  b2 ]& F9 B: l        },
% ~" z) x3 r! Y6 Z% ], G6 n0 g
# j* i( l3 l$ `: _; a        {
3 h- J7 D' [8 _6 d% O) N
( W0 X3 s' o% }                .active_low = 0,( A+ d; z! z6 s, n
# ], M; [/ p9 f" D: F
                .gpio = DA850_USER_LED5,
( f# z  G1 Q  i/ Y, Q5 `' F
8 ~; B1 @0 D" {6 F- R' G                .name = "user_led5",
4 N9 i2 S5 S7 \# K3 v
. Q/ s' q9 t- v  |- [+ ?7 b' E                .default_trigger = "default-on",8 N$ g! z" j) y/ o0 }6 D
2 ^/ l5 d  M% ^
        },; m9 q5 U/ B1 w/ u' B  E. A" B
: W) n! M1 S: ~% [
};$ I: L" _  q, m
" R- O' i+ w3 y4 ~  c% }9 }

0 X& T2 g. S: a9 P* k- m2 R5 ~9 U' l, D5 Q9 w( w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 R$ l3 P. r" h" t8 ]' |. b9 A! H2 c  K- Z; [  l6 ^5 r/ n
        .leds = da850_evm_tl_leds,
* h3 g( r( V4 m! K% p* N4 S8 R: |8 E' \' c1 w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 w; K+ c: y8 t: R0 ~4 ]0 W1 [* i. O" V- K- K2 a/ l5 H1 f  w
};
0 F! ^$ R6 B+ ~+ e6 u- v" L% |$ R0 C$ ~4 O% K
/ I4 J$ G1 f, @/ a) y
9 R' Y2 _- L- k% Z5 i; Y
static void led_dev_release(struct device *dev)
6 M* l( Q& C8 J2 i0 f0 w7 {; Y: q: D. E. m, X7 J- z) L2 Q& _
{
8 |* F* z6 g; l$ A# w! A4 M& F$ M7 w& T1 a0 `
};  d, s: a5 b) F& R& Y

" W* m. ]( m& w# e: G4 P
, i6 r0 @5 F9 }$ l2 n. c
6 y  w/ }. V! ~% n$ u& ostatic struct platform_device da850_evm_tl_leds_device = {
, z6 g, v& G7 T) C  T& b, o9 i9 |( n/ \5 S5 M
        .name                = "leds-gpio",) G0 T5 ~5 u5 Y4 m3 h5 m5 ]7 M

8 I5 K8 y3 k  S+ Y4 D" V% v! h        .id                = 1,
7 N8 [( p! l  D; l; S
' r" ~' i# u+ G6 s& |        .dev = {1 t; s7 N% R# |) a5 |

/ f( H5 B/ U5 \9 G4 y                .platform_data = &da850_evm_tl_leds_pdata,
2 n/ j, Y$ Y4 T; q& [( o5 S/ ^
# X$ r+ `. R* M; H% e8 q                .release = led_dev_release,
5 b' R# q5 O( Y* b
: U9 `' E& Z( v2 p& Y2 x: z        }5 U9 h& j) f9 D0 Q

4 {% x" j- m+ W: V; }! c; W};
# o6 ~' s4 C/ o: S& ~" _# E! U; k6 [4 X0 ]- D7 S: {

. h/ D2 ^  v( s4 ]( g9 y" U7 C! _# U. U/ m
static int __init led_platform_init(void)0 V6 f' d! G. g: r* p9 _  F

) a9 {) V/ |9 H$ S, [* \# ~4 m{9 ?1 \9 B2 m& e6 l" i: f

5 u3 x( q( o. ^. C) s; N% I        int ret;
7 O( Q* ?( L, @* N9 s( f* h- D) A9 i4 `% T# _: K: a# k& y
#if 08 F! g; n3 N, ~

2 A4 ?% W2 e  _4 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 _8 o/ j) d  h( D: d; k
  W1 X, g5 c+ G+ l! q/ S        if (ret)
2 u3 J4 e- ~8 ]8 C7 _3 T3 `- K) ^4 u+ T, F# W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 m$ L. ~. l8 D
5 Z- `; o- d$ c5 x* D, |, L2 i
                                "%d\n", ret);$ [' W4 Q* d9 j9 t8 a: ~8 K

$ d) N/ W  N* r$ T4 x* S#endif, x" r! r9 k4 ]) K+ E  \" h0 x

' H) j, H. C& |, N# `3 ]        ret = platform_device_register(&da850_evm_tl_leds_device);. x. z- z  c& V6 v& W3 r) a% d

- U$ [+ ~* g' j) _        if (ret). D' B% n% ^" \- Y
9 k" T5 x" T# E& ]* |
                pr_warning("Could not register som GPIO expander LEDS");. H' A4 `! [3 @3 X( X
5 X! X/ \& Y' r5 g" g
        else
0 D% Y9 M$ O" X; B+ ]- K6 U, l& E; ^
                printk(KERN_INFO "LED register sucessful!\n");
' v# |( q+ w9 P" g% Z/ }' ^3 G2 E/ @2 T( A; b

3 f1 v8 a5 C6 ^6 l! H
. x' P) U0 q2 A        return ret;+ }. |% q: E2 E6 ?$ h3 y7 |

* f% h' t+ v/ T+ n& }5 t}, m5 ]# F: j) {9 B
7 S- g) M  m4 }7 y
+ i* H. L8 j2 D) r- W

5 \/ X, O1 c. E' xstatic void __exit led_platform_exit(void)
8 n3 |% Q4 r! e- i: Y0 f) Z3 }% U
{
- y5 Y: G* I8 r. o( J$ d
  I5 S* |. B: G3 D- r" x        platform_device_unregister(&da850_evm_tl_leds_device);  N+ k. v! t. t. a' {( x( T8 K
( A' _# |2 T1 t9 w; T5 `
' v7 ?. h; b. i

: M0 U8 S) S7 n+ T        printk(KERN_INFO "LED unregister!\n");
: B4 U+ s3 C9 k) r" d( E
7 ~. O6 a7 E6 {. p) P, v}
' v, L, i6 ?% U
. n& o* M* @' k( p8 Z  e. n$ I9 ?" f! b1 }% \

; h" n. F+ U- M: C3 G* {9 t/ O- Kmodule_init(led_platform_init);
& |( e8 j. J$ \* d4 R9 ]! g7 ^
9 d0 }8 C( d9 ^1 t" A: P: {0 Nmodule_exit(led_platform_exit);4 r5 A+ U) |, o7 E7 e

# m( G' m6 _4 u9 @0 x5 z" }+ E+ Y/ R1 c6 H) z( [; b6 S; i" D  O$ ?) _

4 n- N8 Y" V! k! K- U* T: S3 nMODULE_DESCRIPTION("Led platform driver");2 y$ v1 q; [* a0 {6 Z0 W
% H0 c2 \7 X7 o
MODULE_AUTHOR("Tronlong");  W& r* t! P; f3 Z  W* k: a2 X

3 ]. X+ g# C) W' R$ x9 ]; z& OMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
& A" d5 r3 a4 y% Y2 k+ `

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
* Z' I' U" c! W/ n您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。2 Y4 H( {& I& P# \3 X
...

$ g  `* T+ o7 ^; [# o% @好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
; _" T4 S$ _+ E. P' ihttp://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-4-30 06:54 , Processed in 0.052612 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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