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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 2 _) {& }% A& g' Q

& L( G9 C0 h! i$ t2 |请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的+ |0 M+ E" E5 m- z4 A) C
& w0 W$ u7 `) S6 X
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
0 ~' G8 ?; I2 `' M
$ s: @/ a: Z: z, i

本帖子中包含更多资源

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

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

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
沙发
 楼主| 发表于 2018-12-14 17:29:27 | 显示全部楼层
广州创龙莫工 发表于 2018-12-14 17:14
& J, I# ]/ g1 w! w) K& Vlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

; c9 \+ a$ B1 D1 L4 L6 ^# C我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
% Y6 m  M/ J' h2 _: B6 s  t& d' @5 U#include <linux/module.h>+ W% J# K, y9 C5 U

' J; p9 }* B* H, a2 ^#include <linux/kernel.h>6 p6 S, p# A" ]* |

4 o1 }; [% A. P8 n#include <linux/types.h>
8 c- g! O& U. [/ ^+ `; {6 o# }
, h2 ?  b4 T2 |) i#include <linux/gpio.h>1 P7 ^4 p3 G9 \9 `5 _
) V. K3 x/ t# L6 ~
#include <linux/leds.h>
9 N: k  g  ^$ m' a! `
3 _/ K1 E) \, T* G#include <linux/platform_device.h>
6 M, [% }7 y" p8 P: o2 J7 Y# ?- H2 v! R6 [0 a( \
# l/ c# s" Z# k3 T
# ?1 n, x1 e1 o7 Y( j
#include <asm/mach-types.h>5 G8 Q$ l% {8 u3 T- X5 `7 E

  W1 L2 X2 p6 a# k# I4 d#include <asm/mach/arch.h>
4 ?! u2 U8 D' ]( T
5 e' \7 \  k  K: }. c9 N#include <mach/da8xx.h>
& ]% B! p% E' V8 [0 w! M* h# n5 m
) S2 E3 Q) f4 ~1 K/ W8 s#include <mach/mux.h>
& }% W- i2 m- S" ?' v" [$ \
" {9 R2 a4 E9 Y: G
6 J) \8 e# {4 [8 c# J( ~) ^! G1 I( S% c" c* ]1 [. i+ ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' y. L! A; j  `+ p2 |
: V7 f! a1 A; r1 ~9 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 X/ U! G7 b& d& N3 u$ }8 O
% X4 Q( F& D2 _' F) l& i# o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) a1 [& `! N" A) H9 B# @- s
3 |% X" n' [2 R: t* l$ c1 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ U0 t  d9 M8 Y$ ^: C2 ^

9 S, W& `  p, Y* ?! g#define DA850_USER_LED4 GPIO_TO_PIN(6,12)7 ~0 g0 u1 {3 i# O9 h! v& ]  M

$ R4 d& Z4 m- J7 [( O#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
( O: k8 M2 n  P8 }' E4 j  a7 u
- l8 C' Y% N) \7 R! q0 ^  b3 H2 p3 H3 ?

% d3 y8 F/ e# ~' b+ V/* assign the tl som board LED-GPIOs*/$ @9 @  J4 h5 h
' t8 P  y1 X) B; P
static const short da850_evm_tl_user_led_pins[] = {
  C6 Y2 p- n3 R& Q# d( t6 \. u/ m3 h. M
        /* These pins are definition at <mach/mux.h> file */* r* b$ M: f. w* S* b5 @9 m

! ]8 ^1 [5 t& Q6 {0 d% |+ Z9 f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,5 U3 F# [% Q7 r1 l) j# ^
" R  Z8 ]+ `% ^# W) S; o
        -1* x5 u( p) P: ^) m( g4 m& w

1 p: P/ c9 f2 C. V' J2 I  ^4 U3 Z( e};
% s- [# H; z# }3 l# e' F. _& c" m* Y" B- N

  m$ ?" Z$ M2 z' X# q! P3 d9 {0 K+ ?0 w+ M, T- t
static struct gpio_led da850_evm_tl_leds[] = {, B7 F7 V3 g) g6 Z8 j2 [* f8 h
# F! j+ o4 q9 G6 `. R, m. S. r
        {5 i3 S* w/ ?0 k. }. H
$ H6 Z; C: j5 k( _, |8 Z
                .active_low = 0,
# _0 d6 P/ P/ h  X" h& `% @7 b6 B+ g' v) d$ }
                .gpio = DA850_USER_LED0,8 |% f, u4 t% M& E+ h
! B: A0 x* a6 c
                .name = "user_led0",
( J0 E- ~8 C# B  E7 @
8 j2 ~. {/ T8 d' D) ^0 g( x9 P% A+ M, q                .default_trigger = "default-on",
/ G' y, l4 {/ m+ y2 T9 f% N& C3 L0 n9 A0 H
        },
! x# P  t9 S0 Z$ B$ f% R) S/ i/ t, |5 O
" {( C: A5 v5 a- q. O  w4 M6 Q        {
& j: i, W+ p: J4 _* i* z* C1 f- Z
, w, s; l/ i# k5 N- x2 y  F9 ?: j                .active_low = 0,, E' {6 i+ R& ]6 c" V

4 H' V- L2 p: ]  K% W$ R  z1 H                .gpio = DA850_USER_LED1,
0 j7 U+ `/ D7 g; G
4 b% Y4 @- d8 b3 V1 U1 M* x5 |- Q                .name = "user_led1",: U' i( s8 C. c

: x- J6 Q& C5 K: R9 X: W7 J                .default_trigger = "default-on",
# m4 V* m9 y2 L# q  c* n0 @% |1 \# T5 g% j
        },* J% R, F' S2 q" s8 S( p

( Y) k" Q5 T  c! e7 t" H! C        {
- ?$ A, `3 C" ]6 Q
9 e3 ]& i" u3 j" k* g8 I  i3 p                .active_low = 0,1 b% h' v& w: D/ C# }

0 {. B. K: @  w7 }1 H( v" U# A                .gpio = DA850_USER_LED2,1 o. ~& A6 k: i. e; {! _

* J7 B* v3 K. y- o                .name = "user_led2",
  d% b8 g+ G) T2 r0 z/ W2 `8 ?
2 G" [1 B7 T3 ?, y" p" w1 U                .default_trigger = "default-on",
+ g. M1 [- ^- D! b/ }' i& z) n2 S9 G9 M
        },, X* W4 r/ P8 V8 E/ [
# q+ _) _- W* ]: N& U# X8 m
        {
3 x7 ]8 S4 v! b5 x- b0 x
& _$ o: T3 b6 O& E                .active_low = 0,% r5 H% }5 f/ r- }. j
* G) F2 H2 n! f4 l# a
                .gpio = DA850_USER_LED3,3 ?9 H. L; k3 o; T

) ]8 _3 U+ C# h/ p5 w2 N                .name = "user_led3",) g' `$ N& ^7 Q: p; |6 T

' n* {# E4 u; @0 o2 v; s                .default_trigger = "default-on",4 c2 n  w: E  ]2 i- V( h% H6 z. J

. ^6 U5 T- W1 X) c        },
) q. F5 o# n* W" u- n- J& l0 L' I3 u+ C" ^' c, u& a
        {5 B3 C8 r2 G2 u9 j: I& @
, w. G7 j; o# `6 E. u- [
                .active_low = 0,
0 U9 H* g- H" @" }' s/ L2 t4 d  D6 L3 D- D% u4 D/ a
                .gpio = DA850_USER_LED4,, d/ W8 x8 ~1 n' l9 B
; U: g# C) R# [) y
                .name = "user_led4",0 o& m6 d. Z2 x$ o* J

" g. s4 R% W" q3 D$ L                .default_trigger = "default-on",
( S# p' L) z% W: _0 U) U' r/ S) V" O! Q- M1 v0 K: \
        },0 n$ S9 S7 z9 u7 t3 [1 w! M
, e- E2 _& j- F" R( v
        {& r  Y3 c2 B& I" Z7 N. Q9 c

( M: Q* z3 z) I* o: P                .active_low = 0,
% c- V7 j$ p, K7 F+ Z! I7 U
+ x8 p' Q" j5 \% i                .gpio = DA850_USER_LED5,
2 ~& T% t( p: w2 n5 ?3 p9 n# \2 d2 ]( j; ]
                .name = "user_led5",* P' t3 n4 R- z1 p

8 V3 X( _% f, x1 {: s5 I& |                .default_trigger = "default-on",* }9 X9 k1 \: [' H
9 O& S: j2 e% U0 h2 v
        },
7 G" S- |5 k6 ?3 C0 C: Q8 {
' q: v# a: V, X4 C! b* X5 F};
: Z6 i9 X- g2 i: w
* x& K" G0 k$ h6 y  ^
- G8 _2 Q) l# U+ E- n# _$ C. o
% `7 I3 [% G! a  z& A+ h5 v. cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ a9 y+ W# }% [

) E9 w/ {3 V* r% }1 C* Z        .leds = da850_evm_tl_leds,3 K* T( T5 q) g! d

) M9 n5 c4 n" v% P/ W0 g$ W! r! A        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  x% t) C+ B% Y

. r2 h0 b, F- l8 W};
8 p. E6 I9 j- P' n: R. p& E- t
. `( N9 K! W- |4 T9 r$ L
& X  M* R9 V/ J. q; m# d7 y2 |3 u, u& o# u6 K
static void led_dev_release(struct device *dev), ]; M! P' O# o" x! W7 V- P
0 ^. j/ `" j3 z4 T) Q6 v* A4 T
{
- X& [) E2 I" j+ W5 L5 \1 M  |: \' G, \4 J2 p" j
};+ c; V5 Z, l/ @* e8 s) k7 c, n- L$ n
3 h# c- R% n: S8 O! d2 ]5 _

* j  D' k# b# e# v. D% P; r# d
9 K" K  ^5 L7 Y7 W& z& hstatic struct platform_device da850_evm_tl_leds_device = {
: K. d: {& T" Z. [; e- `
8 b/ P3 d0 \. f) h5 @2 k/ `        .name                = "leds-gpio",0 o/ F! Z% i5 \/ g: A0 ~4 e6 M

8 h# s6 |* j  E! E& z+ M        .id                = 1,8 r% @; T% K' N0 |, [

$ x- s7 t5 k$ `/ D; ]5 [$ g        .dev = {
* A" l# [, Z$ d" ~0 r' J5 k0 ^- r2 m- J8 w5 ?9 j
                .platform_data = &da850_evm_tl_leds_pdata,
/ c2 i5 J+ Z0 y2 T! x: \9 w
8 X0 m6 T# g% B% g# [# x+ {$ I                .release = led_dev_release,
+ C3 n7 A& T& W% ?
' Y) n! @, s0 S$ V2 [3 w        }! l3 G* u5 ^. S+ c9 ]$ N
% ?# k& ^8 L. l, I5 @, c
};
# O& R: y4 I" ]) w& L; S# H
: g4 Q( A) s* K% f, N: |3 U. p* \& k2 A$ n

) O) Q0 @" S, c: [9 h# ?static int __init led_platform_init(void)7 d0 ^2 j1 r) Y

% D; r( Y# i9 g- C; n. W5 S/ ?{
7 P9 O! ?8 L7 j) Y" ~
) a6 p, x2 H8 d) W; Y        int ret;1 a9 r0 }4 n% a8 P
4 t: W% l# [# @3 v  A' I! ?
#if 0# }0 p4 X: `0 ^3 {; E' c& x
- a( g1 }6 e( Z. u# s6 n7 j9 v
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& c" f5 G6 B; X
6 `# C) R- J) o0 \' F
        if (ret)
; x/ _% d4 G$ `# Y3 \% C5 Z
# s7 b, a4 r) G8 X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# B. _: ~9 q2 W3 E% V- i
9 `1 g; G7 T- j" L' D                                "%d\n", ret);
5 H* z8 M& i4 j9 C& z* M5 \% c: l( s  D
#endif* S( ^; S% _6 s" o$ W' R

( v1 b2 v: I1 q) W7 K        ret = platform_device_register(&da850_evm_tl_leds_device);! c0 m: y9 Y; C; g- r( U
$ o  F& P: c  n7 h1 R: }; v
        if (ret)
4 `6 _7 g8 T( f1 B6 i( w( V" ?
$ W1 F: S6 U' G. V: ~" g+ d                pr_warning("Could not register som GPIO expander LEDS");9 n. d. G1 S0 T/ g

5 o# L- ^/ J) ]3 e2 S        else  x0 `. }3 `7 r9 q& l# i

% o/ j+ e" Y3 ]! M/ R                printk(KERN_INFO "LED register sucessful!\n");! v% ~  h3 {7 r/ r( p% ?7 v2 w2 u' A

) z/ y' k, u1 @/ G; Q! U' X  C; i
) e9 K7 ]' @$ a! I, M" _' D. \' u6 m2 L( G' q
        return ret;
: x: M! H1 e) D, d! b0 T  M
  ~( q# Y5 h- k2 [}) O1 g& [- _* W3 ^  u

6 ], r5 G: j7 B. K
1 D# i! U% J: r, z; F' D% ?' r8 r+ O( L" }% y6 \" @3 U* m
static void __exit led_platform_exit(void)
6 H2 _% n6 @: O0 j2 w9 }! I1 |( E1 @& z$ h1 H: W: t
{
5 U2 H" N2 \" @( w6 V/ m
2 `. M3 p- e  A7 x( x        platform_device_unregister(&da850_evm_tl_leds_device);
* U) t. p9 s3 P6 V/ x, e! Z  R7 V3 }( _# q! u4 U3 P9 i
* B1 z5 V4 J9 C4 l% P8 o" F. A0 a
( M! q: O: E  p% b: G8 P
        printk(KERN_INFO "LED unregister!\n");
0 v0 p3 \/ Y( z( i8 X
/ F6 W1 s" ]8 s' F7 }6 r}) e2 y( E$ b1 S
- X1 e& T9 p4 \# j& M
8 z4 E3 z" a3 f7 K) Z% Q* Q9 N

: W8 L+ w. P# p4 r7 Pmodule_init(led_platform_init);
8 ~/ R  X3 B! d7 N  a$ O/ A
: {) ~$ ?7 r' o& O  x$ b) k6 Z2 Emodule_exit(led_platform_exit);
6 m& _0 V2 |4 [! C% w! ]" v9 {7 j' u$ J: u" {' `2 p

8 R% c9 M, E5 \# P9 V# m0 u/ E8 f$ w1 A
MODULE_DESCRIPTION("Led platform driver");5 [6 Q: B' P0 {1 G% c# e. F

" m3 c# ~" E9 K$ t" n- oMODULE_AUTHOR("Tronlong");( n: ^2 c& V, l2 q% B5 k+ G8 S
4 x% m, M7 p# P( C8 y) ]5 ?7 g
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-17 11:32:31 | 显示全部楼层
广州创龙莫工 发表于 2018-12-17 10:32
& U6 |0 t- J' k- q# u" A4 B2 x您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。7 m; s. T$ W+ L) `5 G2 |
...
  a& q. |' U- }& n3 J. @0 i
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
地板
 楼主| 发表于 2018-12-17 17:29:12 | 显示全部楼层
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-19 00:03 , Processed in 0.043619 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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