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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 . n; t5 k3 a  K9 |
( L5 y* U( u# ?, K
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的$ u# v$ n  T1 ?2 U4 P4 V

) b' E* [: I" J& K3 l3 W3 Y% w: |之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
3 ^; g$ C! I$ B; J( E2 g& I( d
5 I2 D1 D/ y9 ?& Z. 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:14
# G4 U/ Z* e& h, Q0 K- ~9 M: ulinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

! c6 P3 h& K/ ^. M5 A9 ~# W& S我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:8 z& e" U( u5 }' W/ b1 p$ g: F
#include <linux/module.h>6 |& c5 b0 Q1 ~: N& {$ G
5 t( m+ e& `7 g: s1 n
#include <linux/kernel.h>' u* p) Z# }, V! a" i: u1 s' i) Z( t

/ I6 M8 E. a6 Q% O#include <linux/types.h>5 l( f6 Y. j, Z: d/ S

7 Z- D, [& m" a  s) ?' `#include <linux/gpio.h>* l) y  p9 S+ N9 x
! }: }' g9 r2 Y* T, f# J8 ^
#include <linux/leds.h>$ t2 I% w% v6 E7 x- b
- t4 D, `( t7 Y: c6 d4 n- q
#include <linux/platform_device.h>2 @8 c! Y6 l7 Y$ c( u0 L
$ [* x; [! v5 c. T* c+ L6 h

2 b! E6 k0 e+ I: [7 T; s  O! l$ T# b, `& `# i
#include <asm/mach-types.h>
1 D1 Q7 P" z- U/ V3 m, r" S+ _) P1 y* r; J8 m- i7 L( h' L% I
#include <asm/mach/arch.h>9 ?* [2 I9 M$ D

" j& U6 |. a* A. |#include <mach/da8xx.h>
( e* n2 u6 I+ z# j
% G: y( v% W- T#include <mach/mux.h>3 y5 j( t7 y- M
7 Z, Y/ K" ~0 j3 y# u; G
/ Y) S, e$ D- j- Z' W

; z* ?, t5 L6 p, q+ l1 Z6 }# ~+ j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 O2 Q& V! R: p/ B6 G

( m. l6 B, i, v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 |+ f7 z4 d  V4 X; n. d* ~4 D2 o, w5 O3 a; y& S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% v, S1 T2 h  t- R; E" [" T+ p" G4 |2 V8 S# l6 ^3 p; i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 E; }1 h8 V! E$ x0 ^8 U
6 ^  T  P0 @' {* Y
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
9 E+ ]* Y# Z& H
( E% d8 `4 E0 g#define DA850_USER_LED5 GPIO_TO_PIN(6,13)4 j% _' t1 Z, `! w! |9 f
0 Y# n0 q0 U, p! O
) M+ r$ L# }& F( u6 Y

* t4 B' z' j& A0 {* D5 Y/* assign the tl som board LED-GPIOs*/% |+ g$ R% R3 m' j$ O% ~8 `" W3 ~
6 d5 {) R! ?" K. g# `
static const short da850_evm_tl_user_led_pins[] = {
3 d9 A- Z, W4 X. Y
# P( C+ g1 Q- H6 }# t. Q        /* These pins are definition at <mach/mux.h> file */! y) C: l) d% T" r8 M8 u5 z
7 x4 E: h4 `: W6 d3 H2 V. D, t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,+ n5 r7 O) k& |# H0 z; w: V

6 C& p% K' q; Y" M' `        -1
0 @8 J/ u! q% r/ ~% N% l8 N
7 _+ s+ D1 H7 w$ N4 v};
* y! o( o' t% T: m9 K: g
) J+ z$ F/ d9 r3 p. n" |/ O6 x& l2 n0 j/ M7 v7 V

* L. b3 h& e  G' j+ I* Q* I" [static struct gpio_led da850_evm_tl_leds[] = {
8 C, L" x8 r8 C' ?  y4 |
7 E2 y9 F2 @* g, e9 X) \! ]- t4 T        {  [4 Z5 a! b, H+ ^
! Z& ?0 Z9 [/ A( }1 n0 l" u% ~
                .active_low = 0,
7 }: j2 M/ r$ e" \) @- I4 B, K2 \& V8 q( B5 z0 Q/ C# {, v
                .gpio = DA850_USER_LED0,
' D  e" K3 \, g8 s$ v9 f1 a+ }  ?0 [. |$ l* P2 c
                .name = "user_led0",
9 Z: d8 D4 \& K; ~6 @: Q% y! m( A. p1 o2 j
                .default_trigger = "default-on",
0 P5 {6 g! Q1 [" I0 Q. @
" c0 l; u- s4 N! n5 Z        },
$ y0 Z! M7 E" P9 d, O6 P; j+ d4 |) f- ~; u, v& p2 `. V
        {
- A  S8 l7 F3 w
( j9 d  U5 w/ E, ]% d7 A& ]% n                .active_low = 0,* d* d5 L4 G0 i
$ p$ L- I7 t; I# W
                .gpio = DA850_USER_LED1,
' }8 H( O6 h4 d# g# G! D
% z9 C. a- b4 O* p3 {                .name = "user_led1",
. H) k1 g# C% a! Z7 u: _2 _/ o1 Q& p: g& M/ R. [
                .default_trigger = "default-on",# Z$ v0 s; n$ y* S
  p: E2 `5 z9 c0 H
        },
7 e9 z6 [0 K& U$ Z
) h; N) K$ w; x        {
0 M% J. Z9 {. ?, m9 p1 H& M' S) w  b  L$ x
                .active_low = 0,
5 ]. \6 `9 n) I" W( N+ ?3 c4 R$ s# }4 t" u; z: `6 I: ~
                .gpio = DA850_USER_LED2,3 L. x# U- v" t8 V/ P

2 |% ~8 j2 `! ^5 W' R+ ~8 W                .name = "user_led2",1 Y* e6 e' {- i0 ^
7 D8 y- ]" _# ~1 d
                .default_trigger = "default-on",
( |# r" a* }0 E# i$ i* p/ @+ m9 V/ d8 E* W; @
        },
5 V9 F* U9 |5 g, z4 l7 |9 j. t" n* V9 j1 c. |) A- t' j& J0 K* A. z# H, c
        {
  w# d$ i  I3 w! I- \: G
  Q$ Z* D( x* ~$ @$ [9 k                .active_low = 0,  ?* A. h4 K- a/ l0 o0 Z) k' z

/ ~7 b1 ?7 `* `; k                .gpio = DA850_USER_LED3,
# E3 a8 z3 E+ o9 o5 R- S
$ Y1 {/ F# Y# D8 ^; n1 }5 J2 y: b. j                .name = "user_led3",
5 K) J$ s* @, X- F9 ~4 c4 M1 G8 I( _+ H
                .default_trigger = "default-on",
" o$ _0 {# G+ h% c# |$ b- U8 Q$ g3 f" |5 C1 `% b# e0 x
        },
1 x: T0 p& x; X7 ?7 H5 u5 N* X$ l1 [  @+ r! {
        {! o. N. f3 F$ |6 e/ {
: W2 M" Q- F! ]2 c
                .active_low = 0,$ I( c* H0 t4 U' Z& e
6 C) f- F; y! U* C- }
                .gpio = DA850_USER_LED4,
6 |% O- A4 J& ~* O+ D! b" j
! e+ V9 V. I! M6 X: Q: [  B$ \                .name = "user_led4"," j9 ^( y& N: q
! x! u8 q+ c6 v7 c- i) S6 H
                .default_trigger = "default-on",. l1 b" n( ~# I8 u6 H% _

5 K4 K6 A, a2 T! J        },
! m4 F) u, f4 r3 I* q* ]' ^1 }/ K; q- H. Y* Q" L6 t8 Q
        {
$ Y6 G, R# z* N( K8 N1 D% k/ [( i" y% Q% h
                .active_low = 0,
) i# g5 h6 j# u6 J' ^8 l) I: O, V6 }7 T# B
                .gpio = DA850_USER_LED5,
3 C. o$ }2 {" y# A7 }( p1 D9 g$ A0 d! X. x) G
                .name = "user_led5",
! Y0 S% ^/ O  V$ @2 n, e/ ]! v4 K
: [2 z+ i! a/ U' G. q! c                .default_trigger = "default-on",4 m' K; O& V8 p+ C5 o/ l  W% C! j
# k# t" H4 m% T* m. u
        },
) G) O1 |0 M: M* E8 J
5 B, \% @; E6 j  ?5 `. W};; ^( _0 J! M$ `$ F" I: f

5 B$ r/ Y' r' W$ N0 |
: @$ g1 G% H: z. l  _! ?' V
: O- E: J/ E, pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' }4 D9 [. U- X1 b; q

* a# F7 ~' ^# q9 }. R: R; r1 o        .leds = da850_evm_tl_leds,$ ~4 s9 n1 a6 Y0 U" }
! p) W4 S: ~- B, R7 _
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 G$ A  C) F, d: G
5 c, d( r4 Q+ ?};" f! L  v1 k5 d0 ]9 e
: ^$ q3 Q2 k" a0 j
  R- U6 z% T' ^- w0 K/ d9 L# i
* p' @# K+ C+ W2 L, l* I
static void led_dev_release(struct device *dev)
" c) }+ ~3 S" [1 H% D; K
! e; z* C! F) M, f+ X' I{
6 {" n5 [8 v* S  x+ R+ L) b- j: X; c$ n# L
};. \1 K& g+ w+ [& L2 _

) W; L' z$ z4 Z5 r
6 S; c1 J3 R- l1 A  V% h! i* {# Y
$ S8 E& d; S5 d( E7 |static struct platform_device da850_evm_tl_leds_device = {
" C! G: c. I9 {) w7 H2 Z0 g/ v7 D2 ~) v
        .name                = "leds-gpio",0 [, d* N1 G' }# g9 @

2 M' P" a$ j( `8 R$ h, G# v        .id                = 1,- W' g) p! y. l

; x% C  q- V& J) Z2 o; r        .dev = {* m$ P. x' M- [, x0 C1 H  Q

- K! |% h0 Q3 j  y" O9 s" g5 m                .platform_data = &da850_evm_tl_leds_pdata,
' V$ T( o. K1 A0 T5 m+ [; K6 {8 W9 y5 J& Z' s- {9 z( y4 R
                .release = led_dev_release,: y& W; [  _1 t

: Y! j; h# N& C! S2 ?8 r, O        }9 ~# D7 y. @3 T! t+ e' T

8 ]- I: N, [6 ?  T( Z; l};
2 q$ I9 N4 J) }: d# ^) j
7 `5 _* _6 A+ G0 D4 h: A1 |# ^+ s; S2 }4 X0 v

. p3 F( Y+ D  K2 n: }" a0 vstatic int __init led_platform_init(void)- _7 W0 f" L( l

! |  T$ e, N& v& h4 p6 ]{
" ]. P3 X8 S- }# b" t7 Q) g# V$ W" g3 a4 h+ T
        int ret;
$ L% U! T# E! v& A5 _2 V+ O3 U5 k4 P
; j1 [) r' ?) {! m# F#if 0
& u4 i! V$ I! k+ d2 D9 U! `9 H5 p  J* x- ^6 k, E% Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) f; j! [8 n% F7 r( n
) k; z! k! v8 r+ j        if (ret)
  m1 `- `5 H( q
8 T4 S( g; N- @8 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  t  I* Y7 A6 g0 e& N6 d4 [

# k& J( \6 k; V. W% [/ f                                "%d\n", ret);& o. B. Y, x( z5 E
9 M8 z) S  \- O- @
#endif" M; g9 D6 e6 M2 Y, _1 d5 @
, T0 t. {% K- T1 U  y# }
        ret = platform_device_register(&da850_evm_tl_leds_device);8 p! B3 c+ m: W; {

# K# I" Q8 _/ [9 s+ H, P) J        if (ret)
% n9 c* _* s9 p6 i3 u
- z5 U; Q: P- c: P9 M2 n$ _) d                pr_warning("Could not register som GPIO expander LEDS");' E* M$ T. n/ `/ P9 D

% S8 @1 s4 L# V  e3 A' J        else& X9 X' v: S. w( U  _6 B4 L
. S# y8 l6 R  a. D' L5 `
                printk(KERN_INFO "LED register sucessful!\n");: w: B3 o! J  N; J2 Q3 w

. f6 k# Q/ }: n7 }
+ K9 J3 E% D- s6 B6 J! U  g
% R% G) i3 x& O; V        return ret;# ?+ c3 ?# n/ q0 l

; K: a3 P8 L7 S$ a- L3 p}; \; N: y( q3 {3 S5 \

# A+ M3 |9 g! E3 I; b7 F* J) Y# ]+ S9 j

$ W) F& V+ T. ^& }( ^+ [& O  Istatic void __exit led_platform_exit(void)
7 L' S- g( g; y# L$ C0 ]* O$ i" s" |4 s1 Z/ B# ]
{
% d2 R2 u& ~9 y" J7 i* w% i+ z
7 C5 J  @$ i# i: L, p  e/ f        platform_device_unregister(&da850_evm_tl_leds_device);
' N' B+ @. z  M2 X
) O5 q3 i* D7 Q$ q# g5 h' M2 w+ `) ]$ h. v  z( q0 g

# N) P- r3 M5 ~( M2 d0 n' q: o8 t        printk(KERN_INFO "LED unregister!\n");5 r* o0 `  Y, n! Z6 _

/ {1 \* g- l. u" u. T}3 g8 O- G+ \3 E3 \) a& X

' q0 p* E/ \9 P* T0 B
  |' J6 }$ L5 O) ?# l/ ]9 o# N2 A
: @6 R% U4 C0 G: v! M: i- S- Cmodule_init(led_platform_init);. f. t/ w) ]: l  S
2 W1 o/ d/ W3 p$ {* [
module_exit(led_platform_exit);: a, _* e) u) w& B% O3 T

8 i9 Y  J5 v4 j. I5 h0 `
, c' y$ S5 Z0 T# k
! u4 J& L) u% F3 I" J& Z5 X4 uMODULE_DESCRIPTION("Led platform driver");5 V% h0 f' [4 n5 T

$ V1 i1 `* h+ \. S3 NMODULE_AUTHOR("Tronlong");# H( [4 v( _$ G! e$ g

( T. Y3 R+ s( j+ NMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
5 B9 d0 e1 X6 j

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32% Y* i  l2 V$ Z! t1 R; X+ ^3 ^$ X
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
" ~/ B# T! }/ M+ [8 n ...

+ y9 u. X* [- _7 y好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。0 U- X+ C- b% A2 t- h
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, 2025-11-5 07:57 , Processed in 0.045298 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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