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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 4 A8 V2 n+ l5 t- N! ^) t- U
: i: I7 k9 d" B
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
1 e, y+ A+ S* ^$ t0 g; T( a4 Y
, }+ o. g1 }% w/ g- ~之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
6 f* c" B* b0 H& B% a
4 p/ e' S3 g& h4 S/ j3 ]* ?" ]

本帖子中包含更多资源

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

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

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
7#
 楼主| 发表于 2018-12-17 17:29:12 | 只看该作者
额  还有这个视屏啊  早知道我就不会问这么多了 谢谢提醒啊
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。6 U4 N& {0 f: g% z( q
http://www.digoboy.com/video/id_4408.html
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32( n' N2 |" _( R2 o  p2 ~" [. Y8 U6 v
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
, {* `3 ^/ r% D3 c8 x5 | ...

' c& `9 e/ r$ R  [- e) x  |好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
( i. \; S+ @% i( a

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
; C% x7 ]0 {! a' G3 C1 _5 r* llinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
; c7 l6 {+ I9 Z
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
! Q7 f5 B) l5 o; X9 T. }7 e/ ]#include <linux/module.h>1 ^( @7 L9 J8 j0 Z! v1 S! q. r1 J1 t0 X( b
8 A6 p" a" J* x1 A6 s" P
#include <linux/kernel.h># O: A3 S7 D' A$ e) ?( L9 }& V; x9 B
7 G. y) f; X% o3 ]/ D, z0 G
#include <linux/types.h>
7 S8 ~  [! A% J! a1 y  y% h3 h
# |9 Z. m. `7 x) }#include <linux/gpio.h>& p) ~: u' K6 [. n

7 E6 L5 A/ k3 o3 K1 D+ \! @6 U#include <linux/leds.h>) C5 s, G/ f% L6 R
4 B" w1 w* I0 ?1 _2 x
#include <linux/platform_device.h>
6 g! J  }. h' ^  {( C* j/ @) C) d% _$ N" q
1 }$ @- `) U) E$ ~' G, J. q: V
' G. p- [3 d- h7 Y. F  L4 x
#include <asm/mach-types.h>
: O6 Q/ q3 _- s0 O7 z2 ?. a8 M  \
9 h4 X& r; S' W8 y0 {5 ^2 |#include <asm/mach/arch.h>
* j1 V) i% Z# q* W5 b
) Y. I+ Y7 w+ h' H9 Q3 ?8 ?* i#include <mach/da8xx.h>. U* ^: n' u, y6 H) X- y

: b/ S" {9 `1 A; G#include <mach/mux.h>/ ?$ r& B4 L! e+ U% }9 c2 k

. j3 B5 e7 C- t/ W6 S9 b. Z5 v: Q9 @5 U* }8 m0 M, s0 l$ m/ p& q" M# X
) I; ~0 p2 K" V! J  D1 b! h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 p0 b  g& |0 r
; L8 }4 y2 u+ b2 w9 {! ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( ^/ b6 D( \: K3 h
# T2 ~% g. ?4 L8 q( {2 e7 i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 Y2 s% r3 j/ X, n3 M" }
8 T) ~, o" w* I. B, }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* E% P1 G0 ~: r5 Y% W7 B/ T1 H- v9 S! ]9 p
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)7 ^" [: W2 G0 r" ?% Q

% X; l7 \+ Y  s  i, p% G#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
8 g# p) Y; M; Q, _& L, @. _) E/ `, a( ]# ]3 `
4 _0 I5 d# f6 X# c! U6 x0 R
: T* t$ A+ `0 u7 V5 H4 ~+ S; k& d
/* assign the tl som board LED-GPIOs*/* ~; V9 S: a: Z! Q! N

" n3 |- g9 ~1 m- wstatic const short da850_evm_tl_user_led_pins[] = {
1 k% _* e  h3 P+ Z8 D$ d
- }6 }2 C9 q2 l5 J9 m' |: N& a! `        /* These pins are definition at <mach/mux.h> file */0 E* [! @8 f' c) r% o6 L

) M; G# N: x2 Z) T7 I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,+ P( D; X: w1 z0 w4 Y0 a
; E# u9 k! i% W/ Q( J  ~  b4 T
        -1
$ H% A! @. Y" a: T! r2 l7 s3 a* c' a7 s
};
# k; K& O# I- C2 p8 e0 g( N3 N& W- Y# r' j8 C
+ O+ S; X* J3 T: O" ]7 b# O: q

' N% B9 L3 B# vstatic struct gpio_led da850_evm_tl_leds[] = {) B. }% R/ u+ G1 x. `+ c
2 ?; Z& M- [( [5 H
        {/ y/ S& D! W; ~! v! }& o$ `

" ~; j. e3 a+ _                .active_low = 0,
& k" m9 d/ d! I" a; o  d! r; h* I
0 {9 M# v" }% B) G                .gpio = DA850_USER_LED0,+ R# q4 _+ r3 P

2 F: E8 t+ B) d( Q- d6 w8 f                .name = "user_led0",
3 S* x/ T5 g7 \* D% A3 _* x' ^9 |) x' _% ?9 H9 M+ e
                .default_trigger = "default-on",9 }+ ^1 G0 V6 f" s4 t* ]9 H, f9 h

& B! I- e4 @1 b        },( a6 i1 w! y( H3 @! N
6 p; d3 h: N: y4 s; W! Y" F9 k: w
        {
9 ^7 z' V3 M! q) s6 O  n
! ?  e# f  l1 ]- p2 o* R" D                .active_low = 0,
  m; m5 M" p& C# T7 Y
  a2 q2 ^' ?# d& b                .gpio = DA850_USER_LED1,
4 l; s) K& ?5 d: b- K
8 U2 H( A$ g; t9 V9 u                .name = "user_led1",
  k/ ^9 J  Z! _! w  r6 k, w3 u
# |4 ~9 n  p  L2 j                .default_trigger = "default-on",- G' v6 m# F% B7 l& \1 e" l$ Y. l

  G1 [9 u! F7 K4 r$ a) M( V        },
8 [3 G# Q  @  }9 x3 v& @; J: ~) c' Y; t4 N0 H
        {' A% Z$ U! @+ s! `, Z; _+ y

, ^/ u. F+ l$ O( \% A& n                .active_low = 0,: |' `  ]/ e, A7 ?) I3 ]

6 D$ @& ~* z2 E+ z                .gpio = DA850_USER_LED2,3 K8 `1 k- f8 J( g

6 d# e6 t% }. x- @, e9 Q7 [                .name = "user_led2",* {' P% p4 t# G
" J9 o. j( I, s+ `4 Q; ?
                .default_trigger = "default-on",
+ h( v: J4 x% B" F6 B2 A& ^0 `* R; S0 S
        },
$ O. D4 V# @5 R3 K6 v( R& e5 B! n2 a: ?9 @- l$ R; F- s# a9 F" U8 c
        {8 }, e3 N, [' e  i3 @

) N; V2 Q! t2 Z- E                .active_low = 0,
5 c; \" G7 M" z- e6 v6 s$ `6 _' W5 E9 @! h- P8 d
                .gpio = DA850_USER_LED3,
, q( Z! l- ~! q3 P: b- Y2 F
( O" N: P8 ~3 ^* G5 |% l* K                .name = "user_led3",
5 t  A( c5 E6 N: {" G2 z* I0 D5 @( R) r" U  s! i% a
                .default_trigger = "default-on",
) j$ }8 u& ~5 M. X8 h/ c) K% H  u3 d- }& V- Q& P3 V$ K$ Z8 L" g! [
        },0 F6 _; \5 Z3 b
4 O" e. j% Q5 [- p+ k1 p9 ?7 R
        {
; o2 ~6 Y! O& S/ K% |3 D' `4 x
: h2 G2 [. N' ?) |, e  f" ?/ x                .active_low = 0,; ^2 F) |6 k/ V* E
. J, g) n5 l) ]& `
                .gpio = DA850_USER_LED4,
% Y+ J2 [5 P2 M4 s; d) T0 J& ^! @$ J+ c9 D- s' o
                .name = "user_led4",* m) e& j1 T9 V1 R
; p: d% N1 x7 d1 C3 `% w8 F
                .default_trigger = "default-on",
: Q$ j! g% l) V: s; ]3 s  {
( \' E* \8 {& r2 |# D        },
9 X+ ~# U4 i% o; {- L' {  `3 x& V( B* d7 P/ G
        {
  z& Q) }4 t: g1 L9 J
( {& I9 V* L- j. Z' O+ A                .active_low = 0,8 ]' c9 g1 c( B. |: j/ c

* B1 X6 G( x' F5 t7 B& `- Z                .gpio = DA850_USER_LED5,$ X8 @; x) D* v/ t. p

4 }+ Q) x# b  J( X                .name = "user_led5",* e1 k8 R9 z3 u" D

$ l# y& t& Q5 H( |1 S: N0 @                .default_trigger = "default-on",' M7 i- f# A$ C& h

8 N3 M2 f6 P) x* H% Y! c& q5 B        },: z) }7 R3 ^$ p

6 a" B8 N  S- V0 v$ \};
3 R* D5 Z& I4 ?$ t9 o: E+ w. y4 r2 J& Q* {" ~4 g% s4 @
2 U" D( ~$ k3 O

- B. Z6 C6 U8 D, k% Z. C; A$ mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 i$ S3 p, W* V6 q

. _" H% H( u9 O7 _' E        .leds = da850_evm_tl_leds,
8 u2 G7 i8 {1 a4 z( `
/ o5 x( F9 h$ f% G/ _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  y4 {8 B& H! M7 g
7 d' I' H4 ?4 l/ |& R. N' }};, f. X0 Y& j# M' U
0 w" r" p- R# `: h9 j! r

/ m# o: K  q7 v6 c8 j
/ H8 w$ g6 `! ^7 o4 ~, B4 Cstatic void led_dev_release(struct device *dev)
1 W: J9 t8 ?- N9 Z/ Q2 E' E8 h% N3 _+ X
{
9 Z; r/ f! ^$ N0 v$ S+ n4 Z; p! ?; `* B( Y6 x' t- i
};
8 Z, r5 b1 w* S4 e# a8 F$ j. a: J$ \6 P( M" t5 B9 [

0 d2 N/ m& T1 c7 ^0 U9 |) i, k4 E  d% y7 q: e
static struct platform_device da850_evm_tl_leds_device = {/ c0 N  B8 E. j

: g# ]) Q3 }: A2 O        .name                = "leds-gpio",3 ]: `0 \1 O7 Z8 W' k
' P4 A8 _" P+ c( T6 w' @2 {1 Z3 g; K
        .id                = 1," L4 [0 h: G) n* X- e, b8 {4 w, r% U

1 w1 x( T" G  P) X. ~        .dev = {* @$ ^3 V8 k: ]6 T/ q
; o; L3 K8 V. K  a0 j3 r+ R/ x
                .platform_data = &da850_evm_tl_leds_pdata,5 a5 H% T0 v3 f0 j$ T

+ v- ?4 y% }) H& ]3 B1 w5 E                .release = led_dev_release,% Y, A; F9 t+ e: |

) f* P6 \* \, Y        }/ c, `, w) ]. N

% j! ^$ L9 L1 i+ y};
6 d. ?- g9 _  m1 j* y0 B( s# |. f- y* Y
1 m' u' p' S+ v- f- U7 d( d  }
& A* r$ p) N( D+ [/ W4 ~2 J
static int __init led_platform_init(void)
3 U: p- @' b, a5 X8 K1 k5 f! q4 N* r9 ]! i! q9 [8 H
{
1 v0 p/ Y) \/ P/ ^2 P
; g: c8 |, D; u3 u        int ret;
8 s) T" Q$ N6 k0 S3 M5 E
8 Y0 U8 V" E7 V/ F#if 0. b  s0 p8 e: D) o) e- h: B7 I' ]
* b# H' `% f! e" B4 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 H5 }1 H  m# m, H1 s* L* k+ q

; ?% I2 i& a/ t$ L* }        if (ret)- C5 C4 g  g& O/ p! y/ y3 N- a. N

2 K" v5 A) D  B! n4 E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# u& e" ~+ R1 _5 x" V

6 l. R' z* J, c% |                                "%d\n", ret);
. ~1 r# }" {  ?- J- \7 K! z
* p! t( E' b$ S. \#endif
) J* o# u2 e0 s# y# H# E# n* h" {+ Q! O/ K/ m+ F( D' H
        ret = platform_device_register(&da850_evm_tl_leds_device);0 b* o/ |  D8 U$ e2 S6 Y! ]* x
; s, T0 X) z7 p+ d
        if (ret)# P+ w! n* ~% F' t6 i

0 j! B# W6 r7 x, v9 |! y                pr_warning("Could not register som GPIO expander LEDS");
; x9 O2 I; p  ~! N$ F3 T
/ \9 P: c3 q/ ^. L& O3 p        else: g9 G) e% O2 _; u4 }
/ `1 j! F8 _6 p
                printk(KERN_INFO "LED register sucessful!\n");8 _8 @* M# U9 O) \
' s2 L+ p8 c7 @) }
6 p) _. {" E$ [

2 I" _9 D2 q5 f  a, {; D! v- g        return ret;
, N. }0 A! I5 p7 x( H8 |: _
  h( i; q1 P5 k  c0 n5 _}5 v: G8 m: A7 @+ \
4 w6 b7 l  M) c+ o* e! Z

8 y+ z! b# B. V& Z: j- v# y2 _  A8 {5 u' J) l
static void __exit led_platform_exit(void). s3 M; V, ~, ~# _3 K! y6 x; `! W

: n0 K2 \& l3 i4 a+ }) }{
' G0 X( j! U2 G! `
$ v/ V) b% Z1 N" m; Q; P6 o  L        platform_device_unregister(&da850_evm_tl_leds_device);1 X' N% c3 p. I

! h7 ?% h/ R# ^  H5 k' R  O. y; N* Z6 l. e. _' K3 H

7 T8 G7 p  O% V9 ?# v        printk(KERN_INFO "LED unregister!\n");" |: s2 g- i: f" Z6 @, k2 H, Z
. O5 q* P- M/ u+ ^  I+ I
}; h' r$ i6 y9 @& t1 X
: ~2 T' H4 i2 w: [/ _5 P! _

# j  w3 `" m7 K3 s- S5 r. H% |; O$ ?/ Y5 U* w; q
module_init(led_platform_init);
, X# W* s1 T. k) a; c% G/ p
; Y% Z& \/ W  L8 |module_exit(led_platform_exit);
  b) d( w; O% U  _1 q# K- k$ n# }# j" w/ C

# ]' P+ c0 o3 }6 q6 l0 R# H8 B. [, _
MODULE_DESCRIPTION("Led platform driver");" f- ?( |1 q1 ?8 X# Z

0 P" y2 V2 ~" ]: H0 |2 c7 IMODULE_AUTHOR("Tronlong");7 v, K3 X# ^+ Q( q7 x/ H8 |

1 L0 a5 |% A0 Z  n" A6 u9 i9 h1 FMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 01:11 , Processed in 0.046315 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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