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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 : P( r: d+ @* t1 e. s; x+ T5 c9 D

  X/ [4 Y$ C, V' O; q3 c2 @请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的' j; o' s2 D  k' N4 C

( b% s6 r9 p4 N: A之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
  P, j6 X; v/ B7 z' ?, k5 m- t: \7 @- R' d

本帖子中包含更多资源

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

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
# N5 ]4 N. _& K- O9 E; alinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

4 `$ n  _9 P" A% G' V% I我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:* [' a0 F3 {  J) S* E6 G9 y3 a
#include <linux/module.h>
* Z6 i8 _6 k5 a8 ]8 h7 J% y, H
" R6 H8 q2 ]* R7 S% y#include <linux/kernel.h>
1 c) `4 n: ]: o$ [
1 u  W* E( H% W6 d# R& I$ S#include <linux/types.h>  h7 L6 x- w8 U/ w, m: C& B

& L! G' r# B" y" ~6 b' \  Q#include <linux/gpio.h>
) M. [0 k9 g. e% r
( z: X. ~9 \) G8 b  G#include <linux/leds.h>
; p4 p+ ?& A" O5 ?! D5 g$ t7 y* C+ @5 Z6 l
#include <linux/platform_device.h>9 X$ h2 y+ c+ y7 I" _/ L, w
0 V0 I3 Z4 _: J$ L

0 o! d  I% e- j7 {' C  t& e- W8 Y4 c
#include <asm/mach-types.h>
: Z; ]' s$ z6 d9 q7 a
; a$ c: {8 G* f# F/ @& S& i$ t#include <asm/mach/arch.h>* W& d+ K7 y/ M2 h/ Z8 v1 l! A

3 K& i9 B; n: L6 N; S#include <mach/da8xx.h>' i+ l1 s, h/ G* e0 M2 W  Y$ b* ^
3 V! Q0 K4 a, o' f% U/ d2 P0 B
#include <mach/mux.h>0 q" b: |- c2 W& ]% `' {& N" e

. w4 M, a2 U; \% Z, t% X. B$ `+ \/ z! D' h; A$ d' K& W

! L, U8 r/ K& o$ G* A2 K; d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 `0 B, n) S. S# c8 r  `+ Y/ _
3 h$ S3 \* p* u  }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 Q4 Y9 `9 u9 W! `0 @6 h

2 i  H, ~/ ]  f* p$ V( ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% K4 B2 Y8 l1 F; H: ]7 M& U

/ w8 q% ]$ h- _! @- T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. R( O; q5 M1 E& m4 [, J6 J% `; W, i/ v2 c% O) I
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
( C& _3 v3 \5 @' [9 B7 `; f% R% n3 j
: f3 J2 I* X+ V4 }#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
  e3 B, A: L* C, I' V. H- `5 ?
& v0 c2 L, \7 f2 J, K$ k, f4 }( t3 t/ C5 |

$ d1 x" g; g! f/ e7 f/ l/* assign the tl som board LED-GPIOs*/
9 [' ^, F2 j. \' W; p8 j( F  L) h3 f
static const short da850_evm_tl_user_led_pins[] = {
; @8 v) E' ~* t
0 i+ i$ v7 n( Y) x  J: ?        /* These pins are definition at <mach/mux.h> file */$ |( G& ?' [: s/ j
! I/ p* Q6 [, b+ l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
8 a0 _3 U1 i, k) }, C9 ~8 T
( A6 O) f1 ^* g" N) R& W3 A        -14 v% \. i% @, `7 P
; u/ Z% O! S. ]' w, A9 z
};
+ s/ M  V$ J" [
( {" R9 E7 [" ?& C/ n2 k
+ O8 O& B  ]# k7 A- ?7 f/ O. `) I7 E( o, t8 R
static struct gpio_led da850_evm_tl_leds[] = {+ W. _/ m/ {" V( [- P( d

% r2 A' L# E! D0 ]        {
% v# A9 j+ y, P4 c, `/ g+ U" U5 u2 j4 \0 q0 z( v
                .active_low = 0,& `. d  P* T. ?7 ?$ t

9 G( y$ {6 ?8 @8 e6 r                .gpio = DA850_USER_LED0,2 z5 r/ Q6 B5 N; f
* ?8 Y' u: ]2 t6 P8 B3 X
                .name = "user_led0",
) Q3 R" c( k/ {; I; ^$ c# ~$ R5 Q, z, J
                .default_trigger = "default-on",
: g# Q$ v4 N; M; {* o: g
3 I+ c, f, x; w9 ?' [5 _        },) j) S9 Q/ i: K5 F1 U
: Y! H+ Z+ g! `0 w5 U1 \
        {
8 f4 f+ R; {7 S" ?2 A, K
4 a2 f' y2 G* L' W3 M; _                .active_low = 0,
7 S8 D0 ~- @) [5 T9 S. q$ ]. {: b+ Y* a; d8 y
                .gpio = DA850_USER_LED1,
6 R) u+ J1 i# x; C6 P' t$ s
  r8 T  A! M) A2 H' K/ C$ u                .name = "user_led1",! h+ O: U* t  T, e4 E; D
" V) ~, a: ~- F4 q$ f( R
                .default_trigger = "default-on",+ x( |% X1 t- Z- F# P, ^/ m
3 f* M" m* b7 u% ]8 U3 K
        },
# G5 J- q8 |8 O9 b8 [: z8 f0 A% ]& K/ o3 U) x$ h/ j
        {
1 l1 l  ~/ e  d* j7 a. E! Y' ^* H; J. Y
                .active_low = 0," d7 Z* T6 k5 [* C4 n2 ^
6 K% ^- ~$ j' G- W/ \6 h
                .gpio = DA850_USER_LED2,* C: E% Q, m& R  n+ {, W& O

9 Q9 g- Y0 E3 O                .name = "user_led2",
8 T0 @9 D, T; e1 T4 R. i- y: u# d+ [
% }* d) ?5 C5 S4 a                .default_trigger = "default-on",
& j1 o; p3 o$ E3 o7 K4 b" ~* m2 q& w; h- [1 ~% F2 C1 \- ?
        },. D0 F2 Z+ V+ W" j8 F1 w/ C; [9 @

8 M7 u& e3 N8 e; R7 N( Z& Z& V( D        {
) k: L, |2 N  b' o: G
, D! b& i, r5 z. M" X6 E. r6 z                .active_low = 0,5 F' @& S0 b0 D+ Y, O; J
  ^$ D4 h1 M2 g
                .gpio = DA850_USER_LED3,6 l  C  i8 b2 s( k" b5 j& p

- P+ {- s" t2 ^/ [9 J' c                .name = "user_led3",9 j) K3 q6 o7 L; L# S) V

% P$ J. K9 j7 ?" r/ h' t                .default_trigger = "default-on",
. |: P3 |  W# y. l. a  P  ?; Z) H& X, j
        },
& p+ K. A, C; M( q% h
. ^% |! {9 f, k  b: q! m        {: {) m+ {0 Z/ o

$ W% C! e9 x" _: Q( n$ ~+ d- ^" n                .active_low = 0,
+ y. A4 T- Z8 ^1 a* I
2 B) I( Y/ ]6 v$ a. W$ Y                .gpio = DA850_USER_LED4,
: G: t& J1 v, S: ]' Q" X8 v4 [. u/ o* I/ |" F
                .name = "user_led4",
+ {  `" ?% U7 ^% u& R7 D. x
6 j( D& f2 r9 F8 Q0 U- ~                .default_trigger = "default-on"," k3 g( n8 V! e, u
" w% q, P& t! k" d
        },3 n0 c% Y3 ]" ]; z
7 n$ s5 {$ e8 l. V5 g2 k0 B2 d
        {! V, Y2 a( Q+ j7 Q, A

  r  K- J2 |, a                .active_low = 0,& }! Z( K# O' D
* P  Y$ F; `! X% c- w( B
                .gpio = DA850_USER_LED5,
; N/ M4 C4 l$ v$ R1 }  ?% t3 O; K& }7 G% s, _! h: P6 Q
                .name = "user_led5",
+ Y; X4 O2 H' j2 Y0 z" Z4 V% V1 w9 U1 U
                .default_trigger = "default-on",
, w: g3 C* ?) r3 L6 ]) d
. C" \, Q$ ~* f1 v$ k        },
  Q7 f- y7 b; I- c
: R, @% q4 f! k5 A) |9 E};
5 S/ ?2 ~5 k3 [) a3 P9 X0 A" s" _9 o% {

: n+ Y, s8 ^4 a! W' m& z# U6 j5 u- ]! c! E/ S: l3 s6 i* l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 J/ M4 z$ k3 K) q0 H- K/ M. H

6 d7 n, u& m; e# x$ V        .leds = da850_evm_tl_leds,
, X5 ~, b1 I4 r2 X6 u1 g" B7 J4 ^7 f" y* B  O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 h0 }! S. r4 ^& p8 y/ K, X

5 C7 `+ H0 M+ q1 @; _  E& j4 f};
7 c( y  f7 {! \% s; u- [3 D
: D( e7 m8 Q7 H. A# |+ f1 V( u% z7 U
5 G/ m; N. y0 @9 C7 j; r
static void led_dev_release(struct device *dev)5 n, a+ L! R) H/ o, \" ]7 h
4 i$ e: T' f. ?7 }" ?' J$ _
{2 A/ l: q9 O- ?" o/ [8 v. V* N
' Y6 L1 U* x! Y( ^! [
};
( x8 K$ s2 M5 ^3 ^3 s$ k- r6 m9 c& s7 e
$ o* @' _5 v, a3 ~7 Q6 V) t

, i4 a) H* T. ]' |static struct platform_device da850_evm_tl_leds_device = {
- ?" v5 W/ s6 ~/ Z3 v2 _' j6 |* B  D6 Z' p" p6 N7 {- }
        .name                = "leds-gpio",$ p$ i8 @+ A) h6 X

) }) T3 g$ ~8 H9 D        .id                = 1,
. P  O8 w1 H. R7 o# \+ t5 l! b* H7 N
        .dev = {: Q8 n( n( j/ W" x
- Z8 d* ?2 |: ]7 N
                .platform_data = &da850_evm_tl_leds_pdata,
5 r$ M1 c2 J2 E& x7 j: O' C) H, o7 A. z0 I- C5 H. W
                .release = led_dev_release,
( I$ |: B% @' L; j& e
. r* S8 h" u( i2 g5 d/ w! K' |7 a        }+ n2 I/ K; E$ l5 {; Z. b. T8 {" G% [

" P) N  D% C8 W* D( Q4 Z0 z6 u};6 x: f6 z  U$ w2 T1 @$ @
$ p, O$ p  C: K6 T, i7 x# l

9 i# y  O) A% }! B/ i$ I/ ^" i/ I5 @4 z
static int __init led_platform_init(void)
0 |, i# U( Q5 @1 h
7 L% X8 A8 O1 A* l{
) B! O7 K& D& a- |0 i' V5 z: t. s# Y; h
        int ret;8 t0 Q: D1 S" |) v0 N

3 B  s6 r& }, X! R- ~3 j#if 04 B$ E9 _2 S# t5 \- _% r: q

) T3 f  @* y0 N+ C& `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! E9 U- K4 H! Y
1 D9 G/ L( Q9 z" T        if (ret)
+ d/ K3 ?2 U8 ?+ L2 |  w/ ?! L& l+ ]7 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 i$ F$ a5 a. y- A! ]# H

' e+ i8 M5 ?' M+ q5 x" E3 B* ?                                "%d\n", ret);) M! ~; W0 E9 R6 F* C/ w

1 |* h/ R( [: e#endif2 b8 u2 G8 b7 L1 r3 h
+ S9 O" c" B* x1 Y3 |* @3 h+ C
        ret = platform_device_register(&da850_evm_tl_leds_device);
! U/ c  k) r% P# \0 z$ b
- ^5 c7 D& C9 o4 F' S8 T        if (ret)/ R" q) x2 g) J8 b1 E

$ ]1 p& h7 _1 U0 A! B                pr_warning("Could not register som GPIO expander LEDS");
; h2 @. R) K- D% S( N. `
' U4 L4 |2 }: l& m& e$ V+ \        else+ j; Z  Q$ F5 @) ?) K& E9 f

+ V. C" u. ~* a9 h) N8 C) d                printk(KERN_INFO "LED register sucessful!\n");6 m9 Z1 d/ L+ i$ [: ?& R

4 \, ~0 M# r/ K" ], f, Y8 H  N2 I9 p4 R" b3 P' m0 U- M4 L

3 W7 m  o; T* c; m; r        return ret;' {3 t; z5 l* g- Z3 L( _

7 Z7 N8 t' z8 a- ]}
7 G+ B4 c8 Q- s
" f5 e1 b/ m7 Y
$ J" ]5 q8 B% u4 S% s! s+ n8 ~/ l& }# j
static void __exit led_platform_exit(void), X# o+ r4 e" u: w! i2 W" I

0 p' D' Q6 `6 b1 @/ C* B: [' `{5 {7 a6 B5 Y( [
( V9 j) z0 M, v+ @8 x5 s. G
        platform_device_unregister(&da850_evm_tl_leds_device);
6 H- ~  Y* }9 L2 q0 b
1 d5 x5 H8 X4 ~9 r2 `3 E! D/ j  l. ~) u5 J) M
5 Q1 X8 Y$ F* E& i: A
        printk(KERN_INFO "LED unregister!\n");
' S8 P- |% C, g+ b3 v/ _5 G/ I! A: I
}( K& W: @6 D6 C7 M% L  N8 |

4 Y0 ~" r: t6 d9 i6 j4 D
/ a8 K$ V- o0 w! H* W# T
( h+ J! b4 W" Y2 m* zmodule_init(led_platform_init);' N, u. b) P5 B0 V0 A' |
' Q, A0 k9 q& V
module_exit(led_platform_exit);, _" ^# `4 Y/ V. W2 G) M5 [& Q
4 _% L) G* G; x! P5 E( T0 G
: T+ l* K- X2 t+ b

1 y% w% s4 ?/ ]8 C! D: p: MMODULE_DESCRIPTION("Led platform driver");
9 F* }' z  x5 {" M0 r
& f! E* M9 ?+ b4 N% MMODULE_AUTHOR("Tronlong");- L7 c5 m, d$ p  h5 P/ M
5 [+ ~6 e2 L2 Q
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
) x- N; H: k: o# u; x

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32, L" v7 l4 l# k8 d
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。4 }3 _  ^5 M6 z: U& H) w" k6 M/ Y
...

# g# v3 }; c" Z" Y好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
" X8 d$ g$ e7 t+ ohttp://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-5-2 22:38 , Processed in 0.044034 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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