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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 - _" q4 u; s& b) f/ `

3 \" @. M, Z/ Y0 M* o7 c请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的; ~1 g/ N% W. ?/ I" l; A: V: }
% f7 s8 ]& p2 N2 E% b, \
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?; k! x& N7 k+ \6 R  c6 H* V

, E; ?; h$ q0 m. i

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
: j6 [7 A8 u9 K9 Rlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

( g; @1 s: F& ?# e8 g2 T我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
* |5 v: B9 n/ C9 {( N#include <linux/module.h>5 I+ p" i1 y4 i$ r. {
  b8 G, q0 a0 V- I; q# S" _. e
#include <linux/kernel.h>3 V7 T* u6 l/ y0 E  i0 q4 ^. D

9 F9 I# x- i8 n. \5 V#include <linux/types.h>1 F4 J- s7 e% K  \! s

$ M1 m# F, b! \#include <linux/gpio.h>
" Z4 [& `/ W; p0 }* V1 w7 j
0 d+ ~& _' q7 K$ ~8 N#include <linux/leds.h>7 Y5 k* r- ~& X: a
0 u5 T8 J$ |8 B1 J3 |. {, ^. ~7 i
#include <linux/platform_device.h>9 j+ w1 K: \6 |0 |2 V
( ]; q- Y9 D, q" {' i5 x
$ T( Y1 g3 F/ S& w
/ i- \1 u# R1 \+ |0 m
#include <asm/mach-types.h>( ?6 J  D1 N2 }

% T) s) F: j: P4 E) R/ @) [#include <asm/mach/arch.h># o3 R! x5 \! j& ~

; f; ?/ c# x, Y, X, p#include <mach/da8xx.h>
8 f1 ]/ J* B3 v7 H& o1 Q  K0 i$ P5 W$ D% ?9 X& i2 o
#include <mach/mux.h>. A5 J3 n" y& `! W; f$ X
% y+ G! _: F& H- v
4 k2 G1 o0 u$ n$ d2 j1 J3 D  T  h
% y! v! Z# ^4 ^( }  G' p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. u+ X0 [2 s4 I1 ~1 M1 V: F" U
9 h% r/ K, T& s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( J, R' X; c: e2 f6 S- c1 B1 q
$ q: U; y* X' W. |$ |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! r; E- ]" w7 \; u3 D; p  U* A9 p( f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), O" [. c* X( D) c

* ?  d3 a6 G8 E- ^9 G) w& n#define DA850_USER_LED4 GPIO_TO_PIN(6,12)$ F& k6 j1 V, N) v0 R6 z

- S, ]; W* Y1 ~) }4 f- o9 m#define DA850_USER_LED5 GPIO_TO_PIN(6,13)% Q  t; T! X: [. ]" _, B3 A, f
2 T6 J% {0 L0 D  W/ x) w$ r

+ R9 U1 s2 p1 ?5 O+ H: E, k1 k6 ]
/* assign the tl som board LED-GPIOs*/" F; f: u* h! e6 x

7 ?8 c) M6 J/ C/ Y4 Lstatic const short da850_evm_tl_user_led_pins[] = {
$ f) a9 Q# j1 p# Z
6 r! `, [: E4 b! B4 y/ I0 R        /* These pins are definition at <mach/mux.h> file */
! D  o4 W) U/ R2 R# x2 O; e- [7 @; J. o) {1 z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
/ m( ?% j# D  o( p8 J  B& K+ S6 ?! _' G+ F4 B& w
        -1- F. `; k, F. |: x

% u7 U! i5 ?) {! w# |};
+ A1 }' L' h3 r3 e2 g( I* |+ ~/ [, o( D/ J& ]  Y6 P. F% Y) X/ _
1 _# Z( N- ~9 g0 Y! D8 _2 W3 i! L

9 _1 H& ?" n( B& s! n& E- nstatic struct gpio_led da850_evm_tl_leds[] = {
8 ^, [) e. E3 B7 ~2 R" ~% U
3 C8 h$ _  b' b5 y2 C: K: }( Q        {
- R5 F, M: a  r! y, s* o4 U* V8 H% L" Y- s0 [1 E6 N# t
                .active_low = 0,
7 C1 j- |. E- P9 y
" [  p2 S9 d# K' W' s8 F  x' K                .gpio = DA850_USER_LED0,
4 ^, _# j+ k* O4 ]% m5 G: B; p# Z3 q: m" y8 X. u
                .name = "user_led0",
, l' O# h* a  S9 d: o
- G) g; y( T( F  v/ b                .default_trigger = "default-on",) L. v% [. {3 U) T' E6 Y' G7 ^
, R7 [/ w% d0 N% B4 d  T" P  Z
        },8 C/ x( O3 H) R* a& O

! [9 G% h( v- b  O$ t        {
6 `, P3 p2 @0 x  I! f) n* [" H  Q+ J# V, d0 q) a' Z# I
                .active_low = 0,
  m0 x% i. H0 n1 s0 |
8 M3 a- c: f* @& S8 V" G1 K6 v                .gpio = DA850_USER_LED1,
: Z- D) c; V. J/ R" H' V* f1 [; t8 i; x; ?
                .name = "user_led1",
  z6 B3 W. f& y) g
. p, r. V' L- b6 R9 T# i( w                .default_trigger = "default-on",/ P% _' L6 ]. T6 }9 X
5 }6 ?$ s, Z& l  V/ |
        },1 m: T7 ~7 v! ^/ }2 ^/ _
: g( |2 B& k# @2 L1 B
        {; }: T5 V1 S7 ]1 A
7 I" M) d, a7 e8 U( G3 }8 m
                .active_low = 0,
" `) Q% M# Z4 C! R2 C" A+ b  ~
5 ^8 w9 D  c/ G                .gpio = DA850_USER_LED2,
: P9 _( [( o; O8 y7 d9 h2 ^& C7 k' m! x1 b+ ?! z. c; \
                .name = "user_led2",
: r. H# v! j, O/ U8 j8 f; K" G8 [* b
                .default_trigger = "default-on",
1 a+ D/ A0 |( L
7 @) }8 Y) S" F, O$ M7 E' J  R+ n8 R  w        },
( b0 C% Z7 E+ m- d# o# [5 @+ \/ C8 Y/ D3 Z2 D/ d) C1 r- B
        {
; B6 {, ~1 h0 P; o, t+ h/ O3 n
' T, G! G% c! U. H1 r- ?6 J                .active_low = 0,
; o% K$ m: B; F$ W& c
8 m* Q0 f9 O6 @4 U                .gpio = DA850_USER_LED3,* J6 s1 y: e/ U, l& G0 ?

6 U+ j, O- R' Q. C                .name = "user_led3",  e7 _4 g4 R3 n9 D$ A" U5 n

2 f* _# t4 }( v. r! o1 B                .default_trigger = "default-on",
6 T0 `$ U1 s7 P( W+ Y
. c  R7 ^) @2 M3 x        },) G& N) R- L4 `3 b: g. T6 b! d& @9 V

. P- }  g" k# c9 D1 ]/ ^  {        {! x  z$ `% K, [/ b2 Q- P

! ~% J" w. `2 h6 N/ b                .active_low = 0,
- H) u9 W3 U+ I
2 `5 m# [/ E0 ?  h0 Q& h6 v, C1 {                .gpio = DA850_USER_LED4,, V3 T. n/ h! ^

% o' W; s5 i! c- n. a6 `                .name = "user_led4",8 O% x+ y+ Z1 Y# Q+ M( [+ y

* l% E8 c% T! A  w0 `  r                .default_trigger = "default-on",
& ~# |* y3 S. u! C3 a% x& Z  n0 c
        },* r, W* f! s$ i! S& r

" r6 e- q) r+ f7 `& i: F2 J        {
% R; r* Z9 A: V4 H+ Q
) c$ t# I- v3 q6 [                .active_low = 0,+ }: G; }% A: S5 X4 ?
. a9 j  t9 A6 d
                .gpio = DA850_USER_LED5,
) `. Z( [- _& a. I6 }
& W% M  s. v% F* l4 ?                .name = "user_led5"," x' R( a  }/ z! r! c
( H/ Y/ C* F% r) `
                .default_trigger = "default-on",
% w( z# p9 ^" M$ V* y& @
& [: ]) e0 h$ X) l& V- _        },
: }; f% _; M# z5 G/ B1 |2 s
' L7 J: m8 J. Y  x, @- U};5 K, e) r( L3 D1 ^0 h
3 c: y- D% B7 D" n( R. s' ?

) A0 }7 D. K& h/ v# B- D8 ^' X- ]% n4 u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! N7 x, X6 n( K" ]% d+ b
- o. D, W2 X$ V' w* L6 i( d/ w
        .leds = da850_evm_tl_leds,) ~3 Y: b  [$ D4 W  D) @

* i3 R* |7 D( ?+ X' o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 l( O+ y1 L; G+ Z( R
4 z5 B/ j3 ~+ O};- z7 p. W0 Z) N% u

  }/ m% \% E' a" |$ Y: C- b& m' }$ N- Y0 M2 d8 ]: O. r+ f
/ U" }6 r) W. d+ |% K4 T/ O( e
static void led_dev_release(struct device *dev)  V$ C1 \. `! p, V. K7 e$ _

3 j! Z! j' o% E{
( K2 T( ~$ E# f$ j, U* g/ d, Q4 |9 v, S% C$ n, L6 ?5 p/ j7 ~$ @6 h) `: f0 ^
};& P4 K# Z) v: g0 l  s; ]
' R6 U+ s& e) s, W1 \3 L' k. `
8 @5 d: ~4 L( g3 R0 {
7 j, r$ Q( _1 V8 {2 T2 \/ v! F5 r2 r
static struct platform_device da850_evm_tl_leds_device = {) F4 j1 Q% P% j# S
; |1 A  Q) `8 D; D. s$ x  q
        .name                = "leds-gpio",# R6 P' e7 u( }, N
9 {0 [4 O2 F# c/ l( t
        .id                = 1,
8 w5 \5 k. J0 a# p/ w5 H% ?/ r6 w% n" j# ?8 ]1 L4 R
        .dev = {
  x4 A; }) w9 d1 }3 |$ S
. |& t8 n% I6 ?                .platform_data = &da850_evm_tl_leds_pdata,6 U& N. K5 p2 ?$ p- x
8 ?( m8 Z4 [6 H! Z3 t* C- \
                .release = led_dev_release,5 b5 W, d7 g# v3 H) o% m2 F

2 |0 t& w$ @+ H        }
  F  P4 n/ W: J# i
; p2 D  x) Q8 `; X9 b};
8 c6 N9 f. E3 ]. Q
: T' J7 s6 I/ a' ~+ g8 A
5 Y( R- }; c; @* ]) u2 M. a% c+ a1 N
static int __init led_platform_init(void)* Q& U: o0 s2 i

3 X9 V% V# J& [) |0 [{
/ H$ G4 x: f- c0 t# t9 N8 h0 N
, R8 f, p& I6 V: r        int ret;/ x; ]0 F4 l1 C* e5 }" u, ?$ G

: s3 q0 W% W/ t- F#if 08 S+ ^5 G) c" A( @' k

: e$ ^' g: k6 f. D        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- d- h4 G1 H* J6 T
) O7 w$ e, g! V) E. y        if (ret)
4 a6 a7 o5 H6 p+ G
9 g! F- w! h$ K; R9 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 E& r; m( u. V, g2 l, E2 D6 I
' @" a% F2 n8 M0 n# ]8 w
                                "%d\n", ret);) ^: Y9 a. Q2 E+ f

( M% u9 I. w. g2 ^7 W#endif
  a% p$ ?: O  |3 I+ Z& L
" V* f4 q9 ^- s5 T" [% t        ret = platform_device_register(&da850_evm_tl_leds_device);0 _; t- G2 f5 a& U3 ^- S, ~# ]

3 N5 Q* ^( i0 I  p: k- H* p        if (ret)5 r7 }. }' R- B- l, j# ]7 O0 [
* X) r6 W( S. W; S6 z  A
                pr_warning("Could not register som GPIO expander LEDS");
. ]8 i0 [; T4 `  P
& |3 \2 `. ^7 A* x; B# Q! o1 D        else0 ~  T% k/ w* c6 s5 i/ V
7 _+ j" H+ t2 X* a. j5 J; R% }' s8 j
                printk(KERN_INFO "LED register sucessful!\n");% `0 g1 {& Z* H

$ \6 B* Y1 I6 I$ J
1 I) U9 M3 O& I0 c: D5 v
# ]- S% u, H6 ?# {        return ret;6 s7 i! q9 P  y
8 z! a3 j8 g8 _7 L
}
! z7 o& D' W% J% G; z  E2 U% p
# K# \. f- U0 a! b8 }9 B0 {& q. R  G# H1 E* ]  a

2 n+ X# q2 B% o* b0 t$ Q) R0 X6 Pstatic void __exit led_platform_exit(void)
6 o7 @4 ~! O5 Y+ r' ^/ R* O
4 V) p) }$ x! N! h# x{( I5 n0 m8 K; A. O
# b8 l2 @" p# h6 @
        platform_device_unregister(&da850_evm_tl_leds_device);
0 |, ~3 o; M" L; z8 i; Z* k9 C, _! b* i$ q( x8 m$ t

& k0 p% X8 X% ~% I
1 Z5 C! L$ V$ @9 X& C, W        printk(KERN_INFO "LED unregister!\n");
1 @+ d  B6 t" B/ `2 b% Q3 h
- L, V3 l( g) ?  t: q& E5 R/ s}; v; u( C8 N& l- L+ t5 i
% @$ s, D$ `8 ?5 h* n3 D

2 s5 _3 g5 S( X* ?5 `
! w1 f% B* }: v5 P  o8 O8 ~module_init(led_platform_init);" s6 L, x) j& z$ ?
) O+ v( i5 F- n. S1 L( ?( A) D
module_exit(led_platform_exit);
1 p8 Z- C+ i/ |0 b7 {& f* B
  V6 I* |& D  P/ L; H' _$ E- w* r. e- G. M9 E9 w0 l: E
7 y4 }0 _, I: X8 W' ]
MODULE_DESCRIPTION("Led platform driver");6 x4 U5 E. E9 ~* |, K; N2 w" ~) N
5 r$ K2 W& P- t! Y* R  \. z4 T
MODULE_AUTHOR("Tronlong");' W  `+ U+ ?" z" b) [  Y: L
! |( b  z8 o7 _* f
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
/ c$ o: _! f2 a1 ~8 q

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
) D& z; H  M; Y& ?; g您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。1 p& B; C# u& I9 Y
...

7 ?5 ~; j1 [6 {2 a7 |好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
: i, @6 l9 B7 ?0 ehttp://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, 2024-4-20 18:37 , Processed in 0.045459 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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