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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
' P" X- o: Z* r6 ~; j" R& z7 K+ h4 ]
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的; f* I# ~9 q8 f2 l* {0 ~; r

2 n# f  i# K. V7 q& p  D0 f# b之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?+ a! O" I: i" i1 j  H$ `% E
8 ~4 ]- {$ S8 _5 V

本帖子中包含更多资源

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

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. g8 y5 }' y3 s% Q& M- H; ^
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
! K9 q. t8 [: O
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:+ C2 E! s/ |2 w) o  E
#include <linux/module.h>
- o8 k& U2 y. v) Q9 D6 u9 y  `! ^! ]. g2 E5 q# H
#include <linux/kernel.h>, y& \( M1 z9 e- J: I
5 _, O3 Y  N# h5 ^+ [/ ~$ y7 K/ K
#include <linux/types.h>
. @2 v- V8 k. ?% c3 f+ @* ~) U: L: n* i3 @
#include <linux/gpio.h>
( H" V. L' v" Y3 ?% [& f8 J% t! I6 W: v2 v7 X0 d
#include <linux/leds.h>$ a+ ~7 {' r% Y. c7 z# a- A
! X3 a- \7 _  a
#include <linux/platform_device.h>: {( q- I4 l. }% \
7 A! k% c2 z8 |- {* z+ ^0 \$ H
8 R/ q( f$ J- r) Y5 g) s

: f: q2 ?; i; T4 x; G#include <asm/mach-types.h>% k( E; f1 F3 p  ]9 E% ~

: W' s4 s& o5 k+ D9 d#include <asm/mach/arch.h>
) E( g, D+ {3 M% F9 H4 I/ q( G  b8 u9 G4 B
#include <mach/da8xx.h>
6 A  `" X0 \& Y; d; `  L8 y1 y  r0 M! c
#include <mach/mux.h>
* x2 ]( M* v1 m% s0 |6 |, m0 F# r/ u! u

, O0 A6 O' T+ b8 @
! d/ u" ~! n' K. k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 I& _7 W& I& W4 R9 J' O' e
) h1 U; [# J0 R- K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" s2 Q- t! A3 Z  a5 c% [4 J' \
# Y$ `2 _" z$ `) E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( d' n% s+ W; d; }0 M' l0 y
6 s- g; q  X0 f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 x. b9 k, @, {8 T9 n
) R) l& D" l3 q4 i8 Z6 j#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
5 r' ^5 o" R3 }
  [/ Q/ k8 z6 z2 ]9 |#define DA850_USER_LED5 GPIO_TO_PIN(6,13)5 o; {' M/ @0 N5 G

3 {8 g* M& n0 o  y% R. }" f4 n7 p3 |  S& A) l* ?: G. Q' {8 ^
! I5 S! S) F  O$ e7 @, |: E8 ]3 ~0 i3 M
/* assign the tl som board LED-GPIOs*/
! U% U) ]1 `* t' i; D0 w" n
1 V( s/ }: o0 p6 H! ]0 \static const short da850_evm_tl_user_led_pins[] = {8 b/ m0 |: t4 c; T" ~# f+ M

: p; o# A, i; o1 B8 T' d. j        /* These pins are definition at <mach/mux.h> file */
2 j3 O, n3 f% M
) W1 {. }" L- A9 Q4 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,. q2 H. ?* a* B& _$ f
8 B4 a1 u7 Z; H9 X7 `/ P8 @2 [
        -1. \6 ^8 |) y9 ]; V+ ?

- Q2 n8 A: s% A* y! m* T4 R};2 U: H  D" o% Z5 g  _; U
/ J( E  @  a: r  P0 m. ]" J
( a* M( x* c2 x, N4 b: o3 P4 P: j
, q. c  G: t6 [1 e6 ^
static struct gpio_led da850_evm_tl_leds[] = {
  U- b9 C/ d8 c# {" e& a) b" Y4 L/ p! w
        {& M( O" J. E9 _8 L  a- |7 G& g

5 v  q" M  o, X- j8 N# o+ N                .active_low = 0,
$ M3 W/ n5 z. j
! ~8 Y$ o" ~: D, y- `* W! V                .gpio = DA850_USER_LED0,5 A5 S# g, j( i( ]/ Z% J- K

" S. B, ?7 T- v9 @7 J8 d                .name = "user_led0",, {7 L8 ~" i7 x$ p! V" u
' X; u4 Z  |. M* h
                .default_trigger = "default-on",
2 Q0 x8 @5 t5 T1 ]7 o' Y' {+ [" L, O
        },4 b; K2 R9 q9 p1 e7 y( F

' @% E+ ?- t5 l/ {  M6 V3 ?8 O* z        {! x) K  [2 a3 O. D0 c: p5 {6 q
0 O% G1 q* T2 ?' N, ]
                .active_low = 0,
+ q0 y6 J! v2 J  h9 c8 n" l2 F
6 R' S1 D7 T" v, k# e9 G( [  T                .gpio = DA850_USER_LED1,
; S: ]" u9 b+ P$ q8 ?6 |7 r* Y1 j6 M  C" Q
                .name = "user_led1",, S' Q9 c' M9 n% Z' f

8 R, R% Z% l" Y5 ^" D' E                .default_trigger = "default-on",
4 D* B8 @. ^' i+ [0 G3 c, d7 J4 `9 G; G
        },
6 J% ?! n. M) G, V9 w* d6 E$ f5 K- G5 Y# @. m5 u1 Y
        {
, F' d0 q$ I/ d, A2 b7 s; ^) s6 ]; z. h5 {
                .active_low = 0,
/ H+ L& B  a) W! `; P. r0 s9 t* _+ }6 i. P# @- U, U. w# \
                .gpio = DA850_USER_LED2,7 E6 ?: J, R9 ]0 z4 i9 ]
+ X8 B, V  N4 d3 Q. u! V
                .name = "user_led2",0 j% ]/ m2 o0 |
$ }+ H# r! G" D+ g7 X- A! B
                .default_trigger = "default-on",
. ~) s4 J8 ~# O+ A  D: b0 e8 b. K, z* [# w- R0 V: A  }
        },
1 I# o, S& l6 r, S
! k* n/ q' r( X        {* p# I# V* M8 e% Q& q$ W$ b
' V6 D# h' p: \' |# |5 I4 \2 N
                .active_low = 0,/ J- B, F8 \; X0 o- R

  q0 {% b( R4 y4 S0 {                .gpio = DA850_USER_LED3,' j$ {" H  f% n: o
) K; f$ p3 B: S5 k
                .name = "user_led3",
" e  V" K5 f) o0 F  Z# }" v( c. P3 o
# A0 y1 F2 E: F! [                .default_trigger = "default-on",: `! f5 W. y7 s5 w- c# m( @
' O  |' M+ ^- H: ?3 E
        },6 |! \" H$ k, f5 y. m& ^0 I

/ G! ]+ u' w' J) [- `( h        {* j: z# R1 g+ \# _* ]
1 d' E& z. C) `) L
                .active_low = 0,
) x- R" X" K8 `" M* N, M9 o% y2 A+ m
                .gpio = DA850_USER_LED4,$ i9 @) n( h8 |

8 K: }8 g- @+ p1 ]6 y5 G$ e: @                .name = "user_led4",
- O' u# ~! A6 s- Z- l( w) y
+ v" j% Q9 {% W7 b) ?! N3 X                .default_trigger = "default-on",
5 C# j4 Q9 T+ h1 {5 c# M0 a0 N( R  i% f# Q' t6 z8 y" h! o
        },
8 {2 B. W+ s6 O' s1 S
: d& n' Z  \+ w' ?5 t3 X0 X$ {. d" `        {0 J; r! m0 p8 U

  Z1 `% a6 B& U. X+ T  A  }. ~* a( d                .active_low = 0,+ t$ ^3 {  e$ L5 O
+ @% _; f) F  B6 S& T
                .gpio = DA850_USER_LED5,
5 p& P& o2 G7 K9 |0 s8 X0 @" o
' h& A# a- p4 @7 T( G. o3 @                .name = "user_led5",1 G5 v2 P' z0 G; b& ^" P

9 Q# ~/ r8 R4 c7 E6 A+ n                .default_trigger = "default-on",
. r) O' L* z/ T0 g- x& t6 V% n
- O/ j* w2 |3 r9 z7 z        },
7 [4 c: o( l) a' F; p2 x9 B; Q3 p- w" H/ w1 S
};
% H! b, Y8 d4 a; N3 P0 e* Q; ~3 B' a4 O2 I, }

1 e; J. q8 _4 w% j, w! U$ m/ I0 H7 ]5 J% j5 B0 U. N" |% Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 ?7 j( a8 e4 @% }- }& s
$ d  i- x. V( }. {+ \3 n
        .leds = da850_evm_tl_leds,
/ S) Z. J( @. i, n2 o0 Q& G8 X  g4 \! F0 u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 W' \) n: |1 m5 i
9 J- m! _+ @) D7 l0 P; ?};
& o( o6 w9 j- }/ i1 p  ^5 I# S& @! \/ C( a: S

' X5 d; d* E& {* G$ U3 d# j/ _% M# A: [6 f: V
static void led_dev_release(struct device *dev)
9 {/ B  s$ W" f, {7 m- h" j( A. V9 h" T/ H: r% S! [' j
{5 s5 b% ?3 V" E

% b3 ^' s6 Z& f& j# q};
5 W% v' X7 n! c! {  f' b. `  r* U: ]) t; z4 {

( X3 v2 P& H, b9 R' u9 R# K
% e* F1 K% ^% j; s/ u. Nstatic struct platform_device da850_evm_tl_leds_device = {& t  l8 P% J7 B: P' \
& q$ K. L. f) L  S& d  o3 E
        .name                = "leds-gpio",
& n' D9 P( V( M2 c2 T& k5 B4 Y# w5 g. e* ?- n& N4 v
        .id                = 1,
  E1 F$ t* h# s5 g9 @  q4 I
- w' p$ C2 Q$ ?' V% r& M        .dev = {- S2 P4 l( R0 n/ Q$ ?2 [9 {

5 y/ n) X, L$ a' x9 I, B                .platform_data = &da850_evm_tl_leds_pdata,; l; g# A4 @& ~- Z# ~3 f

2 @# x/ y- \# h+ e( ?( y+ O                .release = led_dev_release,
5 v) G. i2 s8 M5 H" P) _
5 Q8 W  S$ b$ s- I- N( e+ A- u        }
" ?, s+ F! o' [# H
6 L* T3 U7 f/ }: ^# {! d};# E, C( g- n# N1 k1 `% a9 K

- ]% S7 u& N) M1 n! x! a
5 H* u$ [" D) U, H* z* v
7 i/ i) \$ Z0 H( @static int __init led_platform_init(void)
* l, J. ?! n  U# s( u+ _0 D
$ Q" H( n  V4 @% a7 p" S$ F& D: l{
3 _+ H5 L7 ]5 R/ s3 e6 e7 H3 h$ P7 W& v/ e
        int ret;
; F" S' i# j5 e! S9 M4 O# }5 g8 v8 B7 W, C; P* Q# W, N
#if 0
$ g0 z- l" e5 P/ l/ w, l& X5 B- H* z6 c! P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 ^2 v+ c' z) w; M: Y# k7 R$ C* w. M' K3 h. c( e4 a6 G
        if (ret)
4 z8 E* ?3 d+ X5 N) Z, y
. X8 o% A. D. V8 `9 P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- S8 [, c' C5 [: _0 `  G
6 \' a; W/ |& Q
                                "%d\n", ret);
. }5 W- O6 a$ a$ {2 V+ V# z7 w
6 U4 L% Q- k- F/ F# {- v#endif
5 S; i6 Y0 i3 L% B
, g. `( O# G1 _1 s        ret = platform_device_register(&da850_evm_tl_leds_device);
7 Q' z6 i  Y1 W, ?/ z+ @( E! |" m/ j) ]2 _2 ^4 Y
        if (ret)
) V' z* I1 D- S, E) N1 {  ]# |
2 P3 g1 E- G2 y1 ]1 Z                pr_warning("Could not register som GPIO expander LEDS");
9 ~# `) x$ B: A% r2 g
3 k5 `" U" b) K  J- `" q        else2 ?% ^2 `, h2 W3 X" Q  [& U
6 A* ~: x" d5 z6 }
                printk(KERN_INFO "LED register sucessful!\n");
: h3 \  A/ {4 W# O: A/ G% I2 \' d7 b- t& `5 p) T

( j- A4 p& Y& V, A' M3 s" s+ w" N" T0 C1 t3 A% u* @1 {
        return ret;; Z' w. Y5 y1 Y$ r/ `  @
& G6 N! t* V( y! w
}
: v* S% p" j3 G0 L! K. A( l
" b9 A( ]7 P" E
6 a5 d0 U% N5 i5 l: F2 y5 z( A
static void __exit led_platform_exit(void)2 p8 T( Z5 C" J. l6 z  _

, |* S  T' y' M) x7 e{
1 T+ x4 i% r( @! M2 w* F: G2 x' L! Q" _3 Q6 K& t% y9 N4 {& m
        platform_device_unregister(&da850_evm_tl_leds_device);
/ y9 n- x# }* L/ K
0 c4 k- n$ H) B' V' k) `3 t' {- S- s5 ~: B) q

7 `+ y7 c$ L& E: W        printk(KERN_INFO "LED unregister!\n");# w" O2 L% x+ Q1 ~5 W

2 q  o0 }; k- y/ j# n, b% U}/ A3 B  B* Q% y' p

9 e( y' N  j$ Q5 B7 e. Q2 q+ R4 }8 `3 l; F/ C) N0 g$ T
( e% [6 f$ u" \% [/ M0 P
module_init(led_platform_init);5 x' s3 C4 R0 R4 L$ {* I6 m+ T

- p; M8 N- ~# kmodule_exit(led_platform_exit);
! O' p3 L9 B" d% [* x: [7 h
2 y1 |! R. C* R* ]1 P' V0 m$ _6 {( Z) A/ l
1 g/ f- v! I( V' B6 k: U
MODULE_DESCRIPTION("Led platform driver");' P& K' i9 x' y. ]! B
- L# X/ D  ]# S* a8 X
MODULE_AUTHOR("Tronlong");6 _, s5 f- q) [) O; m

$ U8 m) U+ R' A, E; uMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。9 X3 T' I% L6 Y3 K1 E

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
( T: `+ }0 W  [) J您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
9 S  O: `! b: w% ?. W/ E ...
4 T5 Y% H  J" K/ g7 Q
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。3 ?# k4 }8 O- h* j  J* w
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-12-16 03:06 , Processed in 0.048458 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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