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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
% {# s" y* Z4 Q
" ?. c( V! d0 a请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的" n. U( K5 ?. r, ~# x* [) F; {
5 g' G8 i% ]4 n2 I- ^2 }' l
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
8 v9 k. N2 @+ `5 J
) E! B/ N* T7 D" f2 G/ f9 }

本帖子中包含更多资源

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

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:140 a* K; r( j6 a$ _; C6 j
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

" x! C* u. g, t1 y我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:7 l8 x$ F8 R" e9 J) c
#include <linux/module.h>& q" P3 _+ k* r* N. D% N/ o4 d, I

% q0 A# s) z# p: Z& Q' Z9 v+ p  H#include <linux/kernel.h>* {0 X1 ~2 f( D' _) j" l3 E
5 N' G/ N5 g: e" h" e
#include <linux/types.h>+ j/ }% e; F& J/ D2 d7 K
% U9 l5 l: C0 b  c: |. ?
#include <linux/gpio.h>3 U- w. o# m0 E6 s4 l
- W/ C4 b9 y- j+ w  q1 ]6 o) o$ @; K
#include <linux/leds.h>
+ i. R; Q8 [) D% e! l6 W% g' ]6 c7 v: a. R' Q- |# ^* U1 z
#include <linux/platform_device.h>
+ p; e+ e: b- P: B* Z  y' G% V6 E7 A+ ^* j5 q
! M3 M3 p& I* H! W3 a( w8 @

7 C0 i4 C) {- y4 x4 `#include <asm/mach-types.h>6 O* c& i; Z) N/ g/ a% c$ S3 Y
: I  P' q$ q4 K* s2 A; y
#include <asm/mach/arch.h>
- ~5 V# ^  d3 B! |, s
* X5 e0 D: L& p+ u+ ]: `0 j9 [#include <mach/da8xx.h>
, i6 ]: F! h- ]+ n4 o, k9 }& b: f* y
#include <mach/mux.h>8 x# J/ a  W! p
4 y, w3 ]8 p8 O( p9 w+ ?  h

- P+ c' y" M9 |- N* a, m1 b' f* ?. L" q" j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), `6 P$ R0 u/ Q

2 I8 p( e+ S8 s6 g/ E( k7 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ S2 J1 ]; K% J1 B! Z4 d$ }; Q% _! T  u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. \* V: q% V3 J4 `: Q
4 k" f( e2 l9 @2 U4 z% ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( O: \# B5 w7 Z' l5 q8 e# @) `; P  e9 T1 @4 r4 N# U( n
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)' _, p+ L, Z7 B9 g
% R$ ~" G. H, W$ c# }& i
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)4 d1 I2 ~$ p, r- J# r, m

$ ~: l) B' ^, M# `) k/ x+ |+ V+ s

' L1 y: N, p. M8 M/ D/* assign the tl som board LED-GPIOs*/' G8 l7 t! R/ U* ~. p5 s3 ~

- ?9 x! j4 [: xstatic const short da850_evm_tl_user_led_pins[] = {+ z$ a% J( V9 e4 k2 `( a

7 |. N5 }" t7 c9 W8 C4 c. i        /* These pins are definition at <mach/mux.h> file */3 F' z! z* w  I
/ C8 ]/ o" O& H1 ^+ T. S' {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,# t2 L  T' n- L* {

* ], D6 q6 }: M, t0 t        -1, _0 z7 Y6 \) a" e; h

8 r8 W$ i, s2 D6 i5 Q) s};" @: ~' S) T0 C+ U0 J& D1 T* g

3 e) C( ^; x; \, Q# _) Y7 l5 G& s" s2 t- w: }

  C. s( L! h0 U! F& m) z/ cstatic struct gpio_led da850_evm_tl_leds[] = {
$ r9 Z, P1 g+ i6 J8 T
' _# n5 g- r/ Q- v& p" N        {: P7 C: w. u' U/ J, L/ i
% \" p9 o& l) Y  M
                .active_low = 0,
; M( u# E7 l) o& ^" m
: @2 U% z7 D9 E' G: Y+ j' I- p                .gpio = DA850_USER_LED0,
* u8 A/ D; g3 O% b9 q3 F2 g, @$ ]  I7 v( i, x5 D' G& a
                .name = "user_led0",
, ?- h# o$ h. s' Y" G! \: o0 v3 h! a
                .default_trigger = "default-on",
2 S( ^1 m7 k+ b* P' k7 |3 A; U4 S: r: g9 Y: c" x
        },. x0 Y! E" o! P9 D
+ P! f3 t9 |( H% o/ ^" I
        {
) ]+ M! \( N; p- B. g4 u( `, B/ ~4 n' E6 G5 q% I/ v
                .active_low = 0,6 l/ }) V3 k9 |: z6 g+ Q* }9 K0 F' ?
! s- `# d; j  _8 N9 y
                .gpio = DA850_USER_LED1,- _# A$ F+ _( [8 F

9 {) U. @/ C$ f$ y. z  v                .name = "user_led1",9 i- v: a0 I4 T8 ^% r
4 V1 N6 Q9 M: [0 z: M
                .default_trigger = "default-on",
1 ?4 h* K! F2 W) Q' `0 ]* j0 }% y/ L# N$ c& J6 F
        }," @2 W9 U" a0 x, E
. X$ s3 ~8 a% P0 }* w% d: K' o* _
        {* E; w$ P0 i8 _+ P6 ~
1 E, C* Y% `: D4 C4 o
                .active_low = 0,6 \7 `' R6 |6 L/ z1 O' x( \

$ i8 e- B2 e. H; a' [( [                .gpio = DA850_USER_LED2,  v: O* Q9 P8 U1 E7 x9 H! _" q/ g

% e3 \- `0 Y3 \# N9 O8 a: n                .name = "user_led2",
3 |+ s8 ^( [, N% Y# X; O; p# [" c9 [/ u% U
                .default_trigger = "default-on",
8 ^- ?- E( X6 w7 W* o1 S0 B# }7 {: q- b
        },5 x- @; @9 o! W+ ], J0 G
8 n5 i) j/ Z: o! ~( Z+ e- Q% j
        {" h9 n# n# u- c
8 _9 `8 T: d3 N  C
                .active_low = 0,
2 P) B# w4 ]2 m4 C) g% }; }6 B* @9 M3 I: y* h+ e
                .gpio = DA850_USER_LED3,/ ]* _: k3 `  F5 f% n; w& p

6 J* D- D, l# A. C                .name = "user_led3",
2 {) o2 w0 b# x( m7 r
; D0 ]5 Z2 P9 a: h9 \* n! i5 i                .default_trigger = "default-on",
% f, x/ c" A$ G$ ~/ Y! ]; Q" y9 r7 Q: S0 ^5 P1 B
        },1 I$ B9 n( V/ P

( t% a9 `1 J" L1 ?        {
" A: F; q& f& n* U- Z1 ?" x% d$ l2 j! a( h* F1 c* c& y
                .active_low = 0,+ v+ }* A, h  u1 P0 B6 M

, a" p1 c$ V3 w- ^$ [                .gpio = DA850_USER_LED4,
' M! F- s, Y' ^4 k7 ?! m
2 W, E4 p! A7 j) E" a) z                .name = "user_led4",
1 d  V$ W4 V8 Q3 o& n4 Z
6 ^5 Y& `1 Q% m                .default_trigger = "default-on",7 r5 a) d+ _' O# I) a* ?
& D. A2 E* ~, |2 n
        },
! q3 P2 h- N& y% U8 l; P3 P! `& X2 b# [* ?5 p- J
        {
% z5 q- p! ?( u5 B$ @+ v3 x) e  X' i; F% R% I
                .active_low = 0,) t+ [* C" q2 c6 v1 E! Q
$ g/ v* c5 O6 R% S7 Y
                .gpio = DA850_USER_LED5,9 }/ i) Q0 O% Z

( X% m" B& @9 f( H                .name = "user_led5",
: c# `# R8 t; H' Z3 l! ^# z2 d+ e+ g8 I7 e
                .default_trigger = "default-on",! _  d' j  Q: K( Z

3 @; X6 H) j, l* L8 S1 z+ q        },9 G9 `4 q$ D" d' x

; I$ c8 m$ I1 b};
+ a  D- T; a$ }4 A! ^& Y& G$ J
3 G$ ^. U9 T! v* i
  w* f1 t) O' s$ Z# _) \4 H7 m$ R" F  b/ ?8 X4 r+ U  ]: u$ k7 X2 K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" d# [6 n8 e2 B6 z, ^. D  [+ [) ]$ h6 R5 @8 A$ c8 {: G
        .leds = da850_evm_tl_leds,3 K+ t, A" b1 t+ V7 l& \6 _5 w1 L

# T: m/ k" B! T3 M3 t        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 h" T( Y8 E  V" |

4 I8 O+ P8 R& U' S4 f};
0 u: M# x$ S* w' C3 V5 }1 S; h% K3 i% U3 |
' K6 t% D" w4 @4 U8 g4 Z
* d# G2 b/ [9 V+ t
static void led_dev_release(struct device *dev)
; Z, C: Q& L# Y4 h- w% ?" ^0 G, D0 g
{
" }# H3 i/ N4 Q4 v: S( e' i) k$ E3 h* H/ [$ W
};8 H' v  u. ^0 M; U. G  ]; l
) E4 r: x) `% ?9 m1 h- W( D
0 q1 c- c! c+ g8 w+ O) x- G
! e) o3 b7 q9 B: O- N+ [
static struct platform_device da850_evm_tl_leds_device = {
; ?' e: _2 t/ Z7 l% B$ G; h: U$ P2 m! p3 A9 d5 \+ O* ?
        .name                = "leds-gpio",
6 Q( {" Y1 Z- ]! g( i% d( B; J8 A' Z( D* @- N( n
        .id                = 1,
6 L9 X+ n' U; ?" {' H2 q
+ _" A# z% o% B* X8 m% }% h  @        .dev = {/ F* H4 K) |( a  O( Y

  z1 y9 |1 {8 d$ L9 N1 M                .platform_data = &da850_evm_tl_leds_pdata,8 H1 s- W2 B' G4 g
+ p0 k' @% U' j# l6 r
                .release = led_dev_release,
* \: N+ ?! W( l: i2 m+ [4 v$ u
        }4 a) U5 O9 O8 `8 U

) A: T$ i5 u( j: i9 S};
! ]! @0 j3 ^$ d8 [9 x' ^  T9 M) A4 J1 h' O+ }2 Y; y/ b8 _: t! X
9 Z# |) N( c& M2 K# t

2 b0 r* i) V$ g& {static int __init led_platform_init(void)
. ~  T4 }& h. I9 `! r) G# Q
( l. r( }! v8 Q. V% F) e8 s* a( V1 E3 F{9 C" x  ~- G) \* }9 F3 X* d9 N
7 j7 n8 o7 N  y7 k! W, E
        int ret;8 L5 \1 Z" o. ]' n9 S2 G" q0 C/ P

* g3 L6 l- j1 I#if 07 f( G6 \+ Q+ K
; c9 x# C$ k" a0 G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ C( j* U) D( X* \+ E0 ?2 l
: B( D7 U$ \- Q$ x
        if (ret)5 E/ R" v/ Y# y. R- g  d

: r( F9 L3 ?$ R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% I) n: d4 O. x+ k9 ~/ ^8 \  @8 C9 Q) h: d  I
                                "%d\n", ret);4 H! C8 p4 R4 M3 x3 ?0 B# C! j" \! s
6 ^4 u' R( Z  r( f+ w7 ^2 D. ?
#endif
/ o- u8 @- S$ R8 q8 [2 h
. c/ p. ~1 R! n, |- t# Y! R        ret = platform_device_register(&da850_evm_tl_leds_device);. b5 w/ D7 I' L$ `! p
8 N. P7 @& M+ ^3 K
        if (ret)
, u4 J  D) t4 O* n) o( l2 ^9 }5 R2 ]4 u9 t3 V- z* y' W
                pr_warning("Could not register som GPIO expander LEDS");' @+ I, f- ^1 Y0 W+ d$ X
$ d% P7 d4 G( S/ O, N/ h! n
        else- p6 H( ~6 I2 M, L3 r

) R/ v, M* Y! r: U7 q2 r                printk(KERN_INFO "LED register sucessful!\n");
# H$ X9 q( i  v- f4 n8 }* q
) q8 t( C7 O4 W0 v
2 u6 K' u) ?$ |. t# `9 o% J. @' z6 I; z  i
        return ret;
, w% J& Y. N: F
% M# k9 i0 I% `}# g& r8 ?4 l4 f5 A* {2 v& Y5 n3 H) |

' j0 ~3 J+ Z; j% z: P. V" `( r- T3 B' E; e" ?5 n

3 I- _4 ]$ l5 u4 Q8 nstatic void __exit led_platform_exit(void)$ k: P, X1 O  d+ d6 T5 {
1 w% _- T' ]3 F( P3 Y, K
{
! s0 g5 O* {$ Q% M$ u$ J8 Y! ~6 s) ~# e9 j: t% }0 u* C7 d  j6 d
        platform_device_unregister(&da850_evm_tl_leds_device);. E0 v' D, Q7 J/ u) s
$ b! _) B$ Q3 w6 Q  z, I" R

) W) t" Z) D5 d! U- c1 n; \# f! c4 ^7 X; l% s. H1 f5 X
        printk(KERN_INFO "LED unregister!\n");- ?7 f+ U# ^4 V+ {2 B" Y% Y

# b! E6 |! I: m. R5 B  R9 @}
$ u1 Z3 K! s1 Z& u/ A: l0 b' h  L( a6 i/ T7 e  x
5 K/ G% B  R% s5 Y& Q
. s/ `. P; v% U3 |2 o& _0 Y7 \
module_init(led_platform_init);* t; z' R" m/ y6 m" ~! `1 n
1 j" f8 B2 a& x* c
module_exit(led_platform_exit);9 e' i/ k# f+ G0 C/ U* L: s
, P- D7 U! Z# h9 t- `! Z

7 l1 N& T+ n) i/ ]- [" [! r$ Y- ~
MODULE_DESCRIPTION("Led platform driver");
; a& t$ ]- [; {+ I2 ?! N" A7 k$ n, r& g9 x. @! }
MODULE_AUTHOR("Tronlong");4 q8 K  u( ?* o; u, @
# l2 \  u: B5 t3 k
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
7 R$ z  M- l  O8 Y7 r

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
( e' g/ j4 a" W+ Y2 \) @* _" K2 D您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
6 i) u4 q7 J/ n, E! _ ...

- Q* R5 |0 p5 ~4 _好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
3 c" {; E/ p  {6 u+ L5 _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-4-30 03:39 , Processed in 0.052523 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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