程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 9 G  H. {( _% W. v
- o0 {. P. ?2 z( Q2 ~
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
, U4 w. K( d- z- T/ y5 Q( z/ Y+ P6 Y6 f/ n/ r
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?+ N% ^/ J* B; j. Q8 g
$ P8 m: C: b8 g9 E$ }) e( K& ]

本帖子中包含更多资源

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

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. U! G% @( f6 u! H- }; z) I
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

/ w8 {0 t, u3 ^2 r) u1 T我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
# H+ S% _6 n2 A; w2 V#include <linux/module.h>  ~% n1 G0 F( k9 h( W

- L# V8 i! p. q' y2 X#include <linux/kernel.h>
5 n9 [" q/ f3 X4 y
0 v2 z2 k( O$ X7 |( F! W3 V7 H& x#include <linux/types.h>
* x( Y: ]; U3 C9 }6 R* l5 T/ B2 _* ~% D) Z& G0 o
#include <linux/gpio.h>4 t' s# M6 @# _6 h% c
2 N0 u! ^" m1 F! |7 w- e
#include <linux/leds.h>
, e3 D* z8 w+ @% ]5 M& a4 a$ G
3 a1 `4 L  A, s6 q$ W% N) A" ^#include <linux/platform_device.h>3 e9 ~& [  Z6 ]4 y; J! e
+ x* ?$ f+ e) U4 P8 |5 Z! F, J6 B
$ }4 _7 r( a6 c

5 \' \6 z8 K& ~- f( `, \0 Q2 V#include <asm/mach-types.h>/ U# i. e" n# X+ M2 v

; I3 b) A; p' Q9 Y) g5 l2 f' x#include <asm/mach/arch.h>
) L6 t7 ?& {6 K1 O
) ]+ Z! `! d. W( W2 u9 d( z#include <mach/da8xx.h>
9 s% y! e( V7 U& z9 L+ E  @" g. R: o* k4 X- f; ?4 j. l# |- `, {
#include <mach/mux.h>$ z; O- x! W9 U( Y! g2 `

$ F# b8 L! {8 s/ X( q$ _# b( b8 _" N5 c

8 _4 p& {+ w( R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& \7 [0 A$ [& H( @

4 C! w  \% R5 ^* W- I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 e' |9 z, d( }7 u4 }  G$ G5 m2 v, M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 B; u4 z% I; b3 |* |! r* X
2 \6 I6 z2 o, m& R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 y+ p* P4 B9 Y' g

/ j' \* u" H2 Q9 D9 i1 h5 |, d* w#define DA850_USER_LED4 GPIO_TO_PIN(6,12)- y5 i0 }/ d  W0 G. w! K

4 H9 _+ e# t9 \+ r3 J#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
: T5 y4 W" K% S5 {( A% G
1 O7 Z7 O4 u- I7 O0 p& J! `  J" d# a* ~& ?5 @6 F9 b1 b6 b1 X
. u* G5 I5 O' {
/* assign the tl som board LED-GPIOs*/. v! h/ |% a, Y5 }8 C

/ f( H1 v) O) c9 ?! w( Nstatic const short da850_evm_tl_user_led_pins[] = {! r7 r' P) h7 Z' C* A( _

% [9 K$ Z0 r0 g1 @        /* These pins are definition at <mach/mux.h> file */
* V$ Z+ r3 L3 j: {9 e! N& P
/ q* O7 N4 O, L) M# ^; D. V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,  Z- d6 D: n  F& i; w% k

9 o; T, L3 x9 y+ E        -1
1 r8 Q- l9 L- i0 F
6 ]6 F! {: O1 d+ {/ {& Z$ C! n  [};, w% _7 A& N8 E3 X5 Y* [

1 N* f5 q' o1 C0 P9 d8 ^6 V
- Q7 n6 K  x8 ^, n9 \! S7 F7 k0 Q- q, U/ f& N! b% ~9 y, r$ q( X
static struct gpio_led da850_evm_tl_leds[] = {
) b; e7 ?7 V# u6 |' g9 g4 w$ ^9 J4 Q5 N. U" W
        {
7 a) T) A# r: I5 a# c! y: y0 R- M& P6 }- l
                .active_low = 0,2 a- S" o0 U) M, B
! ^8 d- \% |( d6 Z  j3 @. j
                .gpio = DA850_USER_LED0,
3 Q/ ]' M6 N# J! I" y& w3 I4 g. M* S8 z0 e
                .name = "user_led0",/ F9 @9 p3 ~& J

3 s( r# f% D/ Z: K. Q3 ^3 ~                .default_trigger = "default-on",
$ W  t" ?- M4 C) E# [9 ?
+ L1 p, a1 h# ]' X        },
7 m9 H3 t4 J4 w0 i8 E# k0 y
2 d# p6 m! `. A) V( s) z        {% w2 R0 L! P# q

- g0 t+ d- B6 u$ V, @/ N/ w  K                .active_low = 0,* M% y0 N2 Y0 g6 x7 a+ V

& x+ _% P9 c0 O8 v$ }. M                .gpio = DA850_USER_LED1,/ F: }' D6 J/ G: R; H$ m" D

/ X2 {/ T7 v8 K; D; L7 ^' B                .name = "user_led1",6 I3 Q* f9 O4 E
8 N( X0 V( c- _& y
                .default_trigger = "default-on",
0 ?9 W# Z" ^+ y
0 B% j. j( v7 B% c5 U        },1 J' E8 j1 V. E5 \$ r
! l# m, |: }8 D, [2 `
        {) j! Z/ A+ z! b# D
+ I$ a* Z# L7 Z9 P5 `: M) y
                .active_low = 0,
* E( s. B0 w2 [9 O5 h
* C+ ?+ T( x5 T. P                .gpio = DA850_USER_LED2,
3 {/ ^3 |* t+ Z" |2 T1 o
- g4 [+ v- C: L' n( j1 v                .name = "user_led2",
) `: r) z! C' c7 M4 W3 g; {1 e* D' V& I
                .default_trigger = "default-on",
/ q" w! r# q  }
( B0 u5 Q1 a( Y2 N) o; R        },
3 d$ t) `, I* N& a8 T3 L) f1 o8 c6 K' l+ `( j8 u0 m
        {
( p6 ~: }/ y/ j6 k$ ]  g
5 p6 V, n+ `2 N3 }# `5 \+ F7 x                .active_low = 0,
$ |4 b2 ]0 V8 w
. s7 I0 C3 ]* x( }9 q4 ~                .gpio = DA850_USER_LED3,
3 x! X! r+ I/ d. {% _4 Z- f- z0 q, {6 K0 `* T, Q* D
                .name = "user_led3",; Z& U" R# Q. h+ r

( l. g  d, C" ?8 `7 a                .default_trigger = "default-on",
1 P1 W3 ]6 \1 u! s. A* s- B0 j, l- c( B0 J: ?& k1 Y' n4 S/ J
        },
# ]" p2 n' y0 W* [1 L* }$ d8 O3 C, c+ f( f/ i
        {
8 `1 d. h4 Z- X' M7 _: Y4 A3 W/ H2 J1 Z9 p3 a* B, f
                .active_low = 0,
3 y8 y. K' J; D8 Z/ B
: @! k7 p  C# A  p                .gpio = DA850_USER_LED4,; G$ n) c" \( v, i! j7 Q! v4 b
6 R  z( ^' D. w& ~' C+ Y5 J
                .name = "user_led4",9 H# a+ a! j" r4 S  B( J6 g* X: w% T' m  R

! o$ x  {: P- h% ]6 o                .default_trigger = "default-on",
! H' i' W0 H* k; G0 O
  f7 F4 Q+ @- h/ D/ k5 H* @        },% _. ]: v9 _& m! Y; g' p  v

& g5 V/ n" H3 D- O" q7 r! B        {
3 U4 G; ?; R1 z2 i, B- Y' X+ c* o9 i+ w- k+ L8 c" q  h8 x8 v
                .active_low = 0,0 H% Y+ M9 r  t; P0 ]: y7 {

' N! t' l2 ~2 \3 n/ R                .gpio = DA850_USER_LED5,7 t" ^- q2 [' h
. ]. E7 C" j: G, G% \% d+ F: y2 u
                .name = "user_led5",8 m4 v# ]/ X$ [% Y8 |/ L

( j: ?) W: F( E% u# R* Q7 E                .default_trigger = "default-on",; k) a, |0 i7 l5 V( o: f* i
" g" s, s8 {  @# z& X. P# ~& }
        },
* }& {/ o8 w% {7 U  s- O, g+ p0 U) ]: \* p4 F: x
};; y# a0 E$ v( j7 v' p
5 U( A9 I' U2 e9 L7 ~$ [# d  \  s

3 V. h+ ^  @2 R' C* r( d/ ]! p  g" B- Z5 G1 q& k. R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! L% P& D0 l! B1 v; K
, F( \$ v" H( x7 w+ d1 v9 J' V2 u
        .leds = da850_evm_tl_leds,
( ]% x; e! E8 g% K0 X& a* P; f- ]* x5 p5 K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: M2 S5 b# @) j5 z1 W. }/ h5 C7 w: k# k- ~' y) F
};: U- t+ T- s6 ]1 j
: G# p% X7 x: q

( j$ S& ]' Q' m" C1 {) F% L( Y1 N# X; J$ o# L* M0 T
static void led_dev_release(struct device *dev)
7 j- f& X& v4 L$ j7 V" R& J" g" j3 b+ O, n3 ~
{
- m! b, |- x$ T5 z: X9 a: z9 r6 T1 v
3 h! E: D4 S: ?. S+ y! n" d};
; d% i4 ^$ A/ ~! n% o" C- `* q6 |$ X1 a0 M6 b
& i2 ^% X% O  `2 ]) s$ \" j* x, d
6 A( Y# M* E( G& L0 B
static struct platform_device da850_evm_tl_leds_device = {- P  |: s+ L- z  D! X; f3 P

) j% @: w( h9 h! A' P7 I' h        .name                = "leds-gpio",
5 U9 A- i: Q3 C0 E( I. o- C3 I, G* i' a
        .id                = 1,& \7 ~+ L$ l( e* I8 T
+ S' C4 R% o* @  e
        .dev = {
6 C- r' G/ B, k0 ^" ~  f5 W$ E: j) c' M# V/ T, p7 h
                .platform_data = &da850_evm_tl_leds_pdata,& Z( }0 q6 i6 K  D
1 H, d( y$ u/ P9 G9 ?+ U" j- O, z& T
                .release = led_dev_release,1 S% C, Q" i! m7 U: F

' y( C, S7 x8 m+ X" x2 J( j* P        }
: ~# d4 f5 y; Z# p
9 g7 E- k3 ?- {};
# s* b( K( K, H' d4 C' J6 v( j
! g% X# H9 w9 \0 T3 ^/ v/ M/ [  I. a* \% q2 e6 w" X
3 \- Y/ f3 n8 g8 I
static int __init led_platform_init(void)6 l3 ~4 W2 P  U/ _) e  L

, ~' Z1 \* k8 e6 s{$ t/ X# _. t" ~1 v) _' _% `
$ p( `" E: s; P% \! [+ q( \& d9 T
        int ret;
2 `% z0 ~# R1 s! d- p7 u8 M% P, ~! R) P$ F  T5 L$ M
#if 0
4 ~6 [, ~- A: Z% J8 V  g, W; ]  M4 P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  _: b8 k. |( I3 i

- d/ x9 B, @0 g# E5 O        if (ret)
9 s7 e8 r9 a1 W6 x
/ ^. Y1 k, s, b8 d+ }' ]: c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% n/ x% D: w% B
% \6 Q7 b" U2 P& j
                                "%d\n", ret);1 m) b) I3 w5 f" [6 u. m  Q/ Z

2 X% {; e. U/ n/ s#endif6 {9 K- y% U# ]

2 v( }3 s, R4 f        ret = platform_device_register(&da850_evm_tl_leds_device);
9 `8 x. [: F& n1 M1 Z: J1 q: Q4 U) k# x8 ?8 k' e5 \% i2 s" Y
        if (ret); q* D3 ?- W+ W' n$ s( B5 u
0 ?( t9 }7 B3 G- ~5 k- q
                pr_warning("Could not register som GPIO expander LEDS");) W& y: `: \  T8 H
/ Z  S( `( R9 k" `7 [
        else% ?0 C) H  `# l3 J
5 u% }/ ^. G% G6 x
                printk(KERN_INFO "LED register sucessful!\n");
# K5 {- x) {  K$ ]$ \( ]* v/ v" v# ~& c& a  A

  B7 h" `" d  m( ~3 h2 Z; `" t0 U" e( g3 N8 O$ g5 ]' Y
        return ret;/ Z7 [4 K8 b' v" Q$ ~

! @0 |7 `6 P) [4 z}' m! {3 V& r/ y( y) L

% V0 D, C; w3 _
2 i. b) j. `. R5 ?2 S( O
; b5 P  J. l: J' r4 G8 Estatic void __exit led_platform_exit(void)
! ^5 P3 m  p8 y% r3 m  O4 w( ~5 y5 G  P2 e# ^
{6 x7 c: S- f& c1 Z: v  W' K

$ x% h! U' f9 \: e7 {5 S/ G        platform_device_unregister(&da850_evm_tl_leds_device);! @- E/ B: d0 L; d# `% y
7 g- b- T2 U  u

: J, V3 I: ?, t" ~- `  [& B
# H& k' X# g% S2 u* t        printk(KERN_INFO "LED unregister!\n");
& e/ [* ?, B2 `5 T9 ~$ [$ U; [, E3 Q
8 f6 W' b' H3 f; y$ r}$ \/ I( G, ]; d8 K* R

6 ~2 `3 q* s+ S; [9 g# Z* O- w. M! \$ }! x4 f5 P
' [! J1 Z+ x' d2 d
module_init(led_platform_init);
, n" z# _. q- @$ X- ^4 ~: {  S: }& V/ A" F
module_exit(led_platform_exit);
6 ~" Y9 Y+ e! u+ k0 [( i" F: D" B2 Y7 Q

& }  ]. \" U0 Q9 I
- e( Y( i1 o! L; AMODULE_DESCRIPTION("Led platform driver");
& Y. p9 \! j8 ?1 n9 s/ t) u  ?. ]  _4 C, J
MODULE_AUTHOR("Tronlong");, \% X1 R+ E( L# v# m( w* u3 b

! k8 |, w9 w. JMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
$ [8 P: F9 L- M' X3 T( v2 t

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32# f( B) r  k9 Y, @; [& z0 B
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
' C  Q3 V4 Z: R) \0 j ...

7 Z) d4 E2 m" J/ R好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
: v& L8 a: j0 E% ]) p! Khttp://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, 2026-2-6 16:52 , Processed in 0.054927 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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