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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑   e, Q( Q* w3 w2 S

( o' b6 D* o' L. f3 }1 `6 q1 U% I请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的7 x* o# u+ M$ z- ~9 x/ ^
# @" s8 L* L- K, L4 _
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
2 E+ O, e8 E4 E# {' D- v" I
4 ]. Z0 T( X  U, n0 s& C+ W4 E3 ^

本帖子中包含更多资源

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

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) J( U2 t6 J7 X, j5 n: s
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

4 x: x" c& {9 l+ p, d+ D我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
5 V; n2 c* Z- ?5 P( H+ C6 `5 k: C#include <linux/module.h>1 H# [' e9 s$ g- O. L( p6 K

) W" J" u& F* i5 t#include <linux/kernel.h>$ Q0 i9 Q: ?3 u$ S' L/ _$ n
0 u& T$ A% J! U5 c* A$ M% G
#include <linux/types.h>) g' W$ ]1 J  t
# K4 e" i( B9 z/ a2 Y- u! x' x1 K
#include <linux/gpio.h>8 X- f( V7 \2 V' j
0 v2 e( [% M! ~% m9 l
#include <linux/leds.h>
  M! L: t4 B# d9 t& B; G" m. u+ ]! Z- ?, M7 x% ]5 X2 G
#include <linux/platform_device.h>1 w% k, F) U$ l" }: L

+ D2 ^8 ^+ o7 R  G5 s
' j$ c8 [7 j! P' P7 M/ S
$ G% D4 m+ c) H2 E1 }1 g#include <asm/mach-types.h>
4 F% c. {& f8 v$ c5 h# Y  W& t' Y2 P: m" J* M: T) M3 h
#include <asm/mach/arch.h>
$ \8 U$ U9 \- C  I3 m  e& {- ~( J
4 F) g3 C' P; |! x2 P4 c7 e#include <mach/da8xx.h>
5 i, z3 l6 ^, J9 U8 z: ^0 d
2 V; ?" b4 J1 R0 j8 T$ s#include <mach/mux.h>
! j) _$ N+ {  O8 j# r5 @. \3 Q( M  `
$ P) u7 n% E( q; Q1 k- K
* K7 t( W5 b3 b; _5 L4 y% Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): @; l4 {" f; }' N1 d8 ?5 B
5 K2 n6 m  m' Z$ }" x0 L. a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ P2 m# Z; C6 g
- U  W3 k8 I7 Q+ C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- T  k0 k; U& i8 V. c6 z6 ^+ a
0 M6 W- J% O# K! c; K3 r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 i) S, V* N6 R3 K; L& u" A, x
1 A( o; y. b4 _$ ?1 S#define DA850_USER_LED4 GPIO_TO_PIN(6,12)2 b! [# |, u# O* A

% \; t7 F# C$ P2 z#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
1 q* _7 a" \# x* H6 m3 h' h5 q* U
0 B; k. O, T7 Z& u
8 e+ i5 g( c" i2 R" U* w+ J
. |8 H' C6 q4 |+ x/* assign the tl som board LED-GPIOs*/" R4 c  W1 }8 B% K) e# D7 b0 z$ V) |$ F
0 C8 T$ \/ B9 U. q8 s' N
static const short da850_evm_tl_user_led_pins[] = {
$ X* S" |+ A4 w
* H5 P! C+ ~2 S5 P        /* These pins are definition at <mach/mux.h> file */8 U& Q: P+ f& m* e4 s# E; i! s3 R, i

2 `2 G# j( d9 J( a8 l! \; W        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
! e" a5 o9 Y% w) z3 N  h/ ?, A2 }) A
7 Y- a: j* @8 V9 b3 E% C3 T1 `$ e        -1
. o: u. [/ t' i
( Y1 a! e: n, q  v6 @) q};& E0 v6 p  R6 n  G

3 w, m: P0 K  P+ a5 C0 C( z5 X) }" B8 T3 V
- f% z/ b5 q% N) C
static struct gpio_led da850_evm_tl_leds[] = {
( a- O+ G1 w" Y0 l0 h' ]
' i5 e$ A  y1 E% l        {/ O+ t# N! A7 _* Y
5 B9 A) w) c( K" V4 y4 ?
                .active_low = 0,
* D1 U  g# T# ~% T5 q9 M9 D
9 z: l* [2 U: t) q: r                .gpio = DA850_USER_LED0,5 V# }3 j* I. \# C) ]. S

, s* t9 b& N9 M9 F7 K: o3 Y6 S                .name = "user_led0",
) F7 R0 R: r) c9 O" s. a: o" F# M. Y
                .default_trigger = "default-on",
; B% v6 o& G! O" P8 U% N
2 z: T/ F2 h5 c/ `        },
! f8 }7 e4 W, V$ n6 ^5 l  e
: c% M/ A0 D1 I6 s% U( [# m7 n        {: ~/ \2 R! G% k# [$ m
9 Z8 f% `. S7 B* u0 Y
                .active_low = 0,2 \3 g" E% ]' H+ E  n
6 L) V( \8 E+ M
                .gpio = DA850_USER_LED1,
0 e5 C9 A+ `/ @- C# V1 O6 B5 d" E0 |- i
4 \/ d) Z! `$ \9 M( [7 U4 [, h" ?                .name = "user_led1"," y4 J7 k5 E' [' |: x
# X! U- |% X5 p: l) R4 a
                .default_trigger = "default-on",
3 j& x4 ?# G' @( p
2 x6 y% ^* c7 k) S% Z        },& @7 d" g, r% o: J+ m2 A. Q

/ H7 Q! u+ r8 N/ w- i6 j6 G        {
+ b  I# w$ E( `6 S% g) o
  k# ?$ e4 e4 i, G) r+ u                .active_low = 0,/ l& ~6 }9 d/ n( r: I

0 t: R3 i6 X5 ?9 n                .gpio = DA850_USER_LED2,
# K% h& r$ O# O( s5 g
. Q; g2 d0 X5 J8 Z5 b0 g                .name = "user_led2",
5 `  _- s8 _( h) R; L3 Y7 K* P) u( O. W% d; V; j! p
                .default_trigger = "default-on",
5 }1 n! z( P/ J$ z  K9 I8 ?7 N
3 D; t1 q) [/ p, P1 c; k        },* Y/ ?' a2 b: l9 M" Q4 \) z5 J+ C

4 W8 A5 \) t5 e        {: }+ C, ^' E' ~( l

+ B4 b2 Z/ P$ g$ K5 {$ K                .active_low = 0,
' [2 l3 c3 P4 k, t  a! Q: y9 S$ X4 ]$ E
                .gpio = DA850_USER_LED3,
- u6 A- A9 W: |  g# T# d2 ]: V1 h7 L0 \5 u# S$ v
                .name = "user_led3"," u1 j. _3 O1 T
: B9 V* B$ o' M7 i3 R& K9 f
                .default_trigger = "default-on",
6 Z/ X6 s$ T+ D" a& M% ?
: R0 o, [4 S: y0 ~        },
) k! a/ b7 y3 o* ^% b7 l5 T0 Y8 _
        {
3 ?* k  V/ O9 M' N' P- W8 |+ f
- [- a; C* p0 v1 a) o% [) k                .active_low = 0,
$ H$ x+ }7 c$ C- X' c1 u) f' j; v( x( G, o3 H0 \* o8 B
                .gpio = DA850_USER_LED4,$ `5 R1 K6 |6 K

* y, v9 L  F) `8 x, E                .name = "user_led4",7 L6 d2 V" N# Y, t. v; ~, V. _. x
: H7 a# b$ B# d& \* C0 Y
                .default_trigger = "default-on",
! f5 \1 M# \" f+ o
3 c& S) L3 n/ e3 E/ }        },3 U7 e6 i, T& J7 g

4 K- ^% ?# y8 f. c+ l! ]        {
# E* h. J) t% [4 |
8 ^. N( z6 f0 c7 C$ B# C                .active_low = 0,; b& E% v2 r2 e  f" }8 n; i

4 s5 S& ^1 J* W) {, M. G                .gpio = DA850_USER_LED5,
6 I7 _; ~4 H" g) Q: g; L0 z" D' U$ N. p! K+ x
                .name = "user_led5",
" ^% ^2 f! C( X0 J8 k5 n2 u+ w$ ]& ^8 |1 W& Y
                .default_trigger = "default-on",5 p6 n+ B. ]# b  d

' ]9 a  G6 n; N# G1 S" X        },
* H& l* I! l) |& [( @8 H% d/ w+ T) c* M
};$ ]3 E9 U; m  ^- f0 Z
1 y; W8 X& ?( O$ e  h3 |( S$ B2 Z/ E
! J! V5 ?. [. w$ ^" b2 {) P

! I2 r  p$ }4 x9 Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 K" }) L/ T( F7 n0 A* `
0 n9 |, ~& b: J* E: s2 D        .leds = da850_evm_tl_leds,
* B# i, H% e/ R) x6 k/ Z: ^
# w2 L2 \- x, V0 t& \9 q  N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: ~  M9 Y; w( v
9 H: d5 m" P! s};" ^9 H  Q; a( D5 Z
8 ]% w- {# w0 }9 F
: C, Q5 ?9 g4 G  ?0 b

8 d- B8 @2 l; H* Mstatic void led_dev_release(struct device *dev)% L* u) C0 W9 F6 A( l4 h: B

! K& t7 n& p+ f. C) H- n3 |+ s" R! N4 ]{
- C: o1 s2 f/ g  H5 @3 C" Q$ }! o) ~; U  s" W
};+ r  Q8 J% w& }) {4 M$ ~" n1 G

, _7 _% {; M% L8 L( n4 A% y0 ]% n0 a/ `, l0 \

! w  E( r( x. n& X0 ^) Estatic struct platform_device da850_evm_tl_leds_device = {
; i/ v5 [; L* A) `* u7 c8 l% m. Z+ |6 }% E, F3 \
        .name                = "leds-gpio",
$ X9 @* X) ?' r/ o! s6 q
9 x: p0 d5 [- K2 l7 N9 T        .id                = 1,5 {; B' ]  p' e

( u3 [: I" k+ [2 X- X8 M: E        .dev = {8 [) _: V0 j; j1 O* N
# c5 M7 M3 u$ k  T& s
                .platform_data = &da850_evm_tl_leds_pdata,
" K3 z! ^$ a9 l: g. F/ l+ J9 ?% k6 f% \. g, `) k
                .release = led_dev_release,
  f' b" R" B1 p
! p, g" B  b9 |6 d  R: v        }
1 h$ n* D$ s4 U' z4 N
" G0 i9 Y% \3 a8 L# x6 D( B};+ q0 X/ o: g# f5 C

# I1 O# V9 ?( ?
6 q( l6 y" s$ l
: j- H6 P, L1 f3 Wstatic int __init led_platform_init(void)
( ^' |: z4 C7 r% X. t" h' V- Z3 A5 E, \
{
) ~" K: v6 l2 r8 s- S
2 h4 s* S* t/ g) x        int ret;
; E( Q4 j$ ~( y& c& A- |
! H0 M( s6 l' L" b2 ^. R! Z#if 0
- X% H4 c* {2 X8 s+ Y# o
! B2 s& _! ]: S2 L4 m1 K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& M2 X; g4 ?: _8 D. B! K4 Q6 }1 k1 d+ h& _; q4 x% n4 r1 \$ d0 f7 Y5 I
        if (ret)) {& y# ^8 K( q5 X

$ |4 D  `7 ?6 _) u/ H* O! C0 d# d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' `$ l6 T: f/ V( K( X; _* ~! V" C

4 `" J9 [4 L6 o- f/ n  i6 C% T% z                                "%d\n", ret);1 {8 ^& A' {1 M- d3 A* S" i3 q/ t

& A" `2 T& \; z: O$ Q#endif. z& d" ?. U- ?. ^3 g

) Q- B/ q% Z* u% R& B        ret = platform_device_register(&da850_evm_tl_leds_device);
9 L) e0 C  F+ E( I! U) W5 z5 z3 G. q' h/ m! r# {5 k
        if (ret)
0 j1 b% g5 M! x: \* P
* F% T* @1 A+ _) H, h                pr_warning("Could not register som GPIO expander LEDS");) {) V! m6 i0 D1 J! M- o
) _: N9 |5 ?& ?( d' ~( {8 H9 x
        else4 y4 f" F% O/ n3 {$ f
# y( X+ \) l) Z
                printk(KERN_INFO "LED register sucessful!\n");
8 l% r% {* Y) o& c( [
' \5 [) Y6 c9 |, m# o0 Z
7 _# a6 g1 x. ]0 y; `2 @7 b
# e8 P, ~" t* K. E        return ret;
9 @3 B" ~" e" ]8 c6 `! @/ A
0 C6 C1 w( U7 R* ^% S}
4 C5 B9 b6 @+ A% T! Y4 X3 u! }7 y- J6 v2 N+ L
8 y! B+ y8 C; T" M8 ^
4 Z! ^9 y4 Q9 N9 n- k0 `
static void __exit led_platform_exit(void)* a( h8 O" P  y9 f" V

" N% R6 z$ X" ^4 N{
1 |* H, p- O: H% `5 F" |: j$ p8 M6 _  }7 s3 Z5 b. t( X- o
        platform_device_unregister(&da850_evm_tl_leds_device);
9 I% @7 S0 s# Y( M* f
. d+ k, N0 G1 ]# d/ R1 G* T& Z. E1 ~( ~2 ~
$ ?0 w: ]) ~& X/ c) I
        printk(KERN_INFO "LED unregister!\n");
' r( M% N& O: m. U1 N. b& }) i4 k8 [
}. a! N  W' k+ j+ f

$ n( {4 J  [- E! i2 D! J
2 [8 c+ R% A) m% ~8 [. m- e7 X6 j" D7 x+ C8 S6 y
module_init(led_platform_init);* q: [% @) Q4 @0 `$ L

- i1 r* @6 j( H& i# u! e4 Zmodule_exit(led_platform_exit);' z) X: o4 ^% r, {+ y. y

$ S2 b1 d  g( E
8 u* M* y0 `% f+ f1 @: i% X+ S7 B2 }4 F+ q3 q! `
MODULE_DESCRIPTION("Led platform driver");7 U) B; u3 z* O# V  G* e

2 R$ D' U0 f  I# TMODULE_AUTHOR("Tronlong");
% ^" O' K& {/ h1 w- u7 V) [9 ?) t6 X9 f% l' O; f; n+ I
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。" T* e5 e1 l$ W" m& L4 b

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
- G) J& d0 K  V8 s% x您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- l8 S$ _5 h! Q: Y% Q ...

8 s( y9 i9 |) \6 ~好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。2 t: P% ~0 ~. B4 V
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-7-9 19:29 , Processed in 0.044951 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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