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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 . a4 ~) t1 o0 }9 y4 _' m

8 ~) B# ]; }8 }6 y6 O请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的" J4 G5 ^- n* s  ~

% i3 L. |1 i: I' D" ~1 k之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
: P4 b" E8 v/ ?0 g" Z
6 x; h% _" H; b9 M" {# U

本帖子中包含更多资源

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

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
( Z" m. B6 \  _( F9 ]linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
( ?- Z5 @- P  N  `7 b9 ~! M/ n, B
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
9 A9 m0 H1 U8 n5 g#include <linux/module.h>7 E- }, U" p; v5 x
& K9 k* R; _7 J
#include <linux/kernel.h>1 S6 M$ Z' v2 j4 I
: q3 w" O/ ~0 x9 ^
#include <linux/types.h>
) i* s" |) t4 c1 T3 a2 C0 h/ @% M) J! c; J' D2 V6 s9 Y4 P
#include <linux/gpio.h>
5 Q/ o! z3 }( Q& X% I3 z
) x1 a0 \5 A6 q& X: N. f+ O#include <linux/leds.h>
) m, U& h0 ^% A0 f( I2 L" M+ B9 N" |9 K" A, A  H2 S
#include <linux/platform_device.h>
9 ?0 q# p; x6 {4 |& `
, C5 O8 ~$ j7 ]' j" D5 j) }) P3 f# I# r. h' }
: z$ l- l9 y7 ?: z/ _+ Y! i
#include <asm/mach-types.h>
- g$ H2 ^4 J- o) p% D) O5 h& |9 L% {0 g2 Q# E
#include <asm/mach/arch.h>4 }- c0 X" |0 X* h" i8 r! X0 ~  }
: Y* r2 z+ g9 \1 ]
#include <mach/da8xx.h>
+ Q' h1 d  c8 b) V/ l! K/ Y' n4 D5 X( J0 d+ j7 D$ J
#include <mach/mux.h>0 v- N! L9 H2 [4 z0 H  U

5 {5 F% i# b- Q. f. G" U
" {/ v4 {6 N: n+ [4 j, [* ?  j) Y$ ?; \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: Y! Z# k3 d! j/ A
- H  r9 s8 U5 f0 c' G4 E; \3 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* ~0 b" V1 m: y" ]4 g4 Q
0 ~5 G+ Z; d* U0 L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 L0 H+ L5 B  r4 o# D. X$ h
! j& W$ n9 e/ R! V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 D5 n, @+ u0 ^+ \! B
. e  d3 Q2 T0 i# W$ a2 f#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
( @( F6 Y9 x  i& R; c7 @
* G. C4 u; Y; I# n' U" |/ e) i: x: e#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
- r% i, Y  x* k
9 t$ M/ m( i+ B& f* b& b! ~& K  K% M+ Y' P8 _
6 Z8 w) i8 r! h, N0 s( X  J
/* assign the tl som board LED-GPIOs*/
* A; q( P3 w0 D4 N) ?5 D9 |7 I. |2 c2 [/ L  F, ^
static const short da850_evm_tl_user_led_pins[] = {
0 L- d! h8 O# _  u" l' \  {+ A" m! |8 w7 @0 P/ C0 i/ x- M
        /* These pins are definition at <mach/mux.h> file */5 U. r: z% [, T9 a( B

$ ^/ J  a; W# J" H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
$ w+ c6 b, {  j" @( j
5 n5 i& }6 \- z$ a        -1* T; o$ g0 E8 f6 O" Y; V/ H' k" r/ T
. d3 q& B- i' k4 G
};
& m8 `& W3 g$ x# e( O
) O( M! r9 C( r! D5 d# {; Z% k* h8 E) N: ]: A( Z
' Q* o3 E# x* p2 m
static struct gpio_led da850_evm_tl_leds[] = {
  l2 s( V$ z8 l6 `; |2 z2 a0 a4 b. x9 K* U8 j# X
        {3 Y7 d/ e2 f8 o9 B# N

$ \7 \/ l# H+ `+ ~6 M5 v# e5 ]                .active_low = 0,1 e4 N7 ~* |0 w) }

4 q1 L: m% A  Q8 X                .gpio = DA850_USER_LED0,
. V, T5 x) s; _% V4 ]/ K3 L; y' Y
0 m; K4 a- v5 i                .name = "user_led0",3 V" t# w+ L& Q  A3 e9 E) E

: Y) a  `4 e( t7 D: s. B4 V0 w* e                .default_trigger = "default-on",
7 q( V2 R7 }' Y7 g: i8 K: W/ V: k! }2 m
        },
6 S' }$ b' H" M- v" G4 L
& Z/ Z  H! p% |  w) X        {7 G* p& F! p  _, M8 m

4 v, r5 n8 U4 _' N/ y" i8 q                .active_low = 0,9 V0 y  J  h/ ]; O$ Q7 W5 h, i
( \* M2 g$ i5 X9 J) N
                .gpio = DA850_USER_LED1,! B3 o# X# r* q$ k
) T. ?, `, i3 Y, z& W  e- P
                .name = "user_led1",% \8 t* \& `  _8 |

1 H& e, B, ^, C                .default_trigger = "default-on",
0 M. }) j4 l/ Z0 J/ W. p, k/ B$ ?$ ~% F- F3 _$ c4 v
        },/ I" [& f! T; {8 r* E6 a

) D! [+ z3 d6 v; S' a        {
5 f- t" a- E  u; |/ o
- U& N. o$ m' M7 W' P                .active_low = 0,3 @4 X7 T5 K9 O$ D4 ^: x. v
2 Z6 K# {: |- M+ e
                .gpio = DA850_USER_LED2,  b/ [8 I/ O$ r$ \' _! i" \
: E" E- @3 }0 b' A- l
                .name = "user_led2",
3 V. @# p) S7 S, F) F+ s$ j! I' X$ o. U7 Q$ g) A
                .default_trigger = "default-on",0 f. Q' m0 d+ i4 ^' m

" X  H! Y$ i1 u5 z' E. e        },* d- U" V) b5 N' [: j
, A0 I" |3 L7 T  z
        {0 o1 F* f8 E! m1 H- A3 e
2 m# Q4 s; G; Y- Q! R! `6 _
                .active_low = 0,5 ]# D# y0 U7 `2 s. t

  w+ }5 M, z( x! k                .gpio = DA850_USER_LED3,8 W% W( Q; F; J
( F4 o- k% Y( D& L
                .name = "user_led3",
3 f1 J* t* X6 @2 q/ n9 Y
- \& n: Z% A8 ~& f; o3 {                .default_trigger = "default-on",
9 L9 `# B# z5 y6 e9 T+ w* h- T0 p5 g) B" E3 [3 l
        },
3 k9 @- j; i, N3 K! U  `  c/ Z3 t; F* `! N7 B: t! N/ i
        {
( n2 @+ O6 T  @' m' e: ^+ t) u% \% H  I" @$ F" o; ~7 e6 T
                .active_low = 0,
! |' r: t# J' K" T6 Z' F) m" [* h( `
                .gpio = DA850_USER_LED4,
8 D8 x& x# ]1 P$ V# L
( i: P* V* b& c$ B8 `+ s" F* a! j. {                .name = "user_led4",
$ j- G- D0 K( m1 z# y! `! K6 T$ d  r
3 i4 K0 ^% f+ E+ l, h4 k$ J                .default_trigger = "default-on",! |% l$ q' L& \! N, ?0 F9 x; \4 v

  U- k" c! b/ z) Q: g* O        },
6 z  p, C* S7 @- s2 t7 [& V* B- F$ i  t: f% V' t
        {0 L8 u& c" O) j& D+ t. S1 ]

- }: P6 P  ]. O                .active_low = 0,/ c' v  O/ w# w( o  B& z

- l, Z0 V% u# z                .gpio = DA850_USER_LED5,6 ?% H6 }: G$ @# G& r
- X7 S2 p$ e" s5 t$ m& B7 a. r
                .name = "user_led5"," m) _. a2 I! Z0 K+ i! P* y
5 h# r6 k  T. @2 ^7 q# A
                .default_trigger = "default-on",
0 u0 \5 m( R8 ^# V( E8 ?) y* p: k4 }
        },- E% p" I, f, W# k# Y

( e0 I9 T: W3 n' U, y4 H8 p7 @};
' j4 g; Z& l: ?! E9 k$ A: a; ^
1 a8 O  j# X% F* |6 M- d7 Z& N3 x* i) Z' ]2 \" G1 ]  C% O

- N3 x% q) R3 A6 V% }static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ H" f1 D3 k$ H4 r
7 X+ T% |) \* s! b5 w  X  h5 I: Z        .leds = da850_evm_tl_leds,
5 d7 ?( ^( H8 Q( ?; e5 C  }4 {# y0 X* V5 H( E6 B' I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: K* G( K* s" e9 r: K- J* _- a
$ T, F; x) B6 b1 `4 Q};
0 P7 q) h; E3 e/ k3 ]' P  |5 k4 p1 ~: m4 ?5 v) B

  u6 B9 h8 |9 y3 `( z
- z2 ]8 Y% Z& y0 [/ z* L# vstatic void led_dev_release(struct device *dev)1 E+ K2 y7 k$ B: h

" x* Z$ Z  C0 a4 S6 n{6 ^0 F$ y; ?/ a. y' z! U) @* @

4 A% B, P( l  O. f; U};
; n+ S7 _5 B: `2 P' ~& k* O0 f4 ]+ `* B0 d% ^6 c
2 J8 e$ z$ l$ Y6 E2 Y( k" J
7 I/ W  I/ x; x9 t4 i
static struct platform_device da850_evm_tl_leds_device = {9 g0 }. U! b9 {
7 E  W8 X  S; z; o# c) ^
        .name                = "leds-gpio",# j1 \  B' P1 X3 `+ Y
" X4 h9 p+ O0 z8 Y1 S- V
        .id                = 1,$ o1 b5 P- P( |8 H; a

2 [0 d) x: a) x3 w        .dev = {( h/ N" Z- ]9 p$ h  C2 @4 J
5 |. H% N- r6 u# A/ y& e- B
                .platform_data = &da850_evm_tl_leds_pdata,
2 m7 f3 C8 v# W; p6 o( ^! d: D) B3 H: @; W$ j
                .release = led_dev_release,! [2 L8 m: S- J! E: E9 O

& O; O% W+ ?0 _- }  `$ F        }
" b- T" ~9 J1 U9 ?* r2 k
" G  _9 i' b" N) z. g$ H};, v: f# }- P  F9 b

% p: [& j( R+ z( S% M) h4 H4 ]3 }! r) ~3 h" h
. D2 @- k4 }' @. U3 F) I6 {0 }' y
static int __init led_platform_init(void)7 `( N, I# U# I/ M# Y! |9 i

$ e2 h. F7 g3 H{
. Y- M- r" C' ?# q- B" c: I4 p* a: Q& }& K! R  M$ V* ?/ B
        int ret;+ T7 [3 R7 h* g4 |) X' w

6 d4 Y) b7 O( A) Q+ x3 E1 G#if 0
/ Z, O6 q" ~0 {* w; Z' E9 S  w# i, [: o9 X, Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 b0 C; D) x+ ~3 l& l9 l% A

0 l( `0 ^# D% v) g, ~$ X& d        if (ret)
1 k6 Z% W9 J0 A8 G/ r3 w4 d! x0 h
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* G( Z4 z- {  y2 Z
  o. X. }+ R/ U$ P, a: u) U/ b
                                "%d\n", ret);! U5 p$ n& K3 Y5 _4 G% w/ a

! ]5 Y+ @( A- @, }1 t- c! Y" E#endif" Y% @6 @4 u/ ~7 T
& t' B& Y9 [- b
        ret = platform_device_register(&da850_evm_tl_leds_device);' y* d' h; u2 G9 c" j( w3 E' b
1 H+ @* x% Q: w. U
        if (ret)- m0 U, T* p) Y8 h% Z, g1 C! d
/ e- p$ R/ F+ U* W
                pr_warning("Could not register som GPIO expander LEDS");1 @5 k9 _* ^1 `/ c5 w
. s  k2 L' A' v# I9 {# I+ h
        else
( B% r7 q" H: C# e# C+ i
0 \+ Y' l; s% n" w                printk(KERN_INFO "LED register sucessful!\n");
- H0 `' Z% W: Y  }# Z# G
: T- I8 U+ B5 M$ h; G  ]
0 K0 y. b$ H$ |) o
1 m$ F" _% a8 L* D        return ret;8 ~7 E7 M# a' }. _, A6 F
9 E. m: V" o' h/ a' ~5 b
}
) q  I# o( P' K: \
. n1 M+ `7 f1 _% h% Q
# u" ?! x. K7 X; A
% Z+ Y2 E: g) _% Mstatic void __exit led_platform_exit(void)* ^  e" y, {7 q
# a6 A4 }! k" a5 \( f5 o, K
{. S! T/ x/ x$ ~; c- G
+ k( j6 e: `/ H, B$ ?! |- ?. F
        platform_device_unregister(&da850_evm_tl_leds_device);1 M4 s3 X$ A7 b# N8 e6 n! {

# ]1 ~' ?0 ]& V% X4 ~; ?8 O& J  w) O8 f4 ]( E1 c

7 L" C, m# d# F" r) B, Q        printk(KERN_INFO "LED unregister!\n");
5 u7 r( l% ]7 k$ N4 A
' j' l4 q0 ^& W  c) Y, @# |}
9 G: ~  M. i0 R5 I( a
7 ~3 d! q! ]" W9 ?+ u: G3 F% S- a# I
8 c8 c- k2 \% f* l( S' H3 a. W( k2 D, y+ ]
module_init(led_platform_init);, G" G/ |3 s9 B6 P: ?" d

! t8 o7 }4 Q: i+ k: {6 p: \+ W) cmodule_exit(led_platform_exit);
9 ?1 r. K* ?; t0 U* S' [  B, A4 N" k! q

, J" V* J7 k+ |8 C, B0 v
9 B! J! T! f! IMODULE_DESCRIPTION("Led platform driver");
) H" S+ v4 p! S3 m; B7 i; z) d/ q- Y$ j+ S5 M
MODULE_AUTHOR("Tronlong");
8 Y5 s* }! ~4 ^4 I4 L2 Z( U
3 h( D$ z/ R* Z5 y- Y( r2 {& fMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
% J9 }% W. i, W( l' @; L( ~* z( M

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
# f7 I: S" t3 W% a2 p您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
+ w! c# A6 f$ x' J. C ...
1 K, N  ?$ A' ^- \# P5 Y
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
* v2 U6 I  E/ z6 U; V" o% G0 \4 uhttp://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-5-11 14:12 , Processed in 0.043194 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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