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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
# C* o6 ^$ {& y; F6 U" ]0 V7 H
3 ?+ f, O2 `! j. [& g请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的; t1 v( @" }( E' V6 G2 |) q, w' u* B
4 U; l  F5 a0 k$ P  B( B
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
. ?& t4 U1 Z4 e! U4 k
6 B/ h" y# M/ C; V& d* L# V

本帖子中包含更多资源

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

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
+ y" {" k! Z, O1 Alinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
* ~/ ]3 K  b' ~- t' {5 I
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:+ N. L$ k7 W4 W& ^: b
#include <linux/module.h>- O1 d/ N" Z- ^1 Z( ^% j+ h

3 a* o, q& u6 K4 p' J4 d#include <linux/kernel.h>0 Z3 v! u9 Z6 U3 T/ }4 ?6 f
: A& V2 H) d7 k: |- v) g9 k5 v0 u
#include <linux/types.h>
' N6 g. T( M0 n) N3 M7 r$ o
5 L0 J: h+ ?5 c& q9 K#include <linux/gpio.h>
1 Y7 [9 \: S' j- _) [9 _  K3 H# l- {, E( n! K
#include <linux/leds.h>
8 g3 r9 V2 I' J& V  R" q/ e* I
) k. e3 @) t. ^% K/ V#include <linux/platform_device.h>
8 n  ^/ t$ b* a( p; A
8 E. ]2 h# c& h6 b# k
/ u& c5 a+ k7 K" Z; n( x
2 c$ G& B/ G1 B+ [: D) d' \#include <asm/mach-types.h>
% Q/ I$ e% S4 B' L* K9 P+ h9 C* g7 f8 i1 Y; r# f8 Z
#include <asm/mach/arch.h>
: @0 o/ R6 b& k, i" ?; D7 X0 D  {3 O* f' k# f
#include <mach/da8xx.h>
( F/ @: E, B1 i- y' U7 A1 G9 H) b( ~
  q% S* t8 a0 C+ V#include <mach/mux.h>! n* u. {+ H1 a
; {0 B7 G  O* d6 w. a3 N7 M# A4 p5 O, m: c
9 Q+ \  m  G, A  e+ P- B
9 q' b- l7 j- R+ w4 r: {5 A- {* Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ B0 q4 H8 Z/ @1 k" E. z% J
7 @. x& w! P5 t6 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 L3 z) x: ]& O9 Z2 \
+ W% B7 w  h$ H6 j$ L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* W7 q  ?) N  ]1 U6 x9 }$ ~( P
$ `3 u( T$ a) p$ k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# p' |1 k) b8 g6 e
7 o; m4 P2 `8 `  D
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
9 K1 O" G: v6 q& O% J2 L: e+ |8 A
0 S( G- j4 q+ P#define DA850_USER_LED5 GPIO_TO_PIN(6,13)& j" W; W( `/ S7 ]1 h) R6 u* X

8 H8 _" b& b  V/ `; J8 M. v+ [9 {8 T/ ^5 f- X7 T. G: S* B5 \

8 h) C. D2 M" [2 I# r/* assign the tl som board LED-GPIOs*/
3 O& m- D$ |5 |6 M% x4 `) W1 _
. K1 {# R" ^7 xstatic const short da850_evm_tl_user_led_pins[] = {
/ g: [  e4 D, n+ \0 c% ~" X) x0 ], |; N5 n  E
        /* These pins are definition at <mach/mux.h> file */! N. y2 P2 M+ f* ^6 j
* W9 Z4 d/ ~. e. v4 j$ [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,' A/ h! o% ?7 D! u7 w% a- C

7 u, O2 U& M( ~+ m        -18 H# E  ], g& {: X4 y; e
& r; P6 O+ Q+ k- G/ B) K  n
};
& _6 D: n9 @9 B9 a9 t
" @6 E  |0 h' f, y: B* d5 |0 t
4 U9 Q4 r; ]$ q3 x
) s9 }. o* E/ kstatic struct gpio_led da850_evm_tl_leds[] = {3 L% f; \+ s( J5 t

- m& P$ y& A8 k5 d* U2 x1 _        {$ U" g; a, i4 U  s
/ [# q& y. e! M4 d0 s  A; Z
                .active_low = 0,
) M" R+ D2 _/ P2 D2 }5 I' a& D" Y' R- W; D3 G
                .gpio = DA850_USER_LED0,3 w7 F$ n9 U& o& {
/ R% j" l( L6 W4 ]2 a: j
                .name = "user_led0",/ J3 R' X, U7 K( Y! ^

  X4 I3 l( @6 @6 G0 }                .default_trigger = "default-on",
1 E6 i, N/ l* a+ n6 ?
, e2 H2 b- l: T! A4 y        },
4 ^/ K% T$ `3 ?/ U$ f; ?# P& {' \% ^/ F9 B; [9 H. X
        {+ T0 a6 w& w. r9 Q9 `
2 w. Z# N, l0 I# P1 Z
                .active_low = 0,9 `0 z" O! R2 F' L2 t3 q

( c5 n, [( ?$ }                .gpio = DA850_USER_LED1,
8 J% y9 b7 G& ?& I; I7 f7 ?4 K$ K9 X+ ~& _$ u4 P
                .name = "user_led1",
5 ^2 q- }9 u* R/ B0 s! X: q+ A
) U3 a: t1 x5 X3 F; ^                .default_trigger = "default-on",
5 u# Z0 A+ u- z
) o1 c" ^2 y  m% l$ p9 m        },
" x9 E. C. X. G
! J( V4 t! I+ r; b$ Z1 }! o        {
5 i. J: V2 j) ^% e; u
6 U/ c& X! P0 R3 x                .active_low = 0,
! l* Z7 N# r( C$ t1 O( ]1 S) s
4 b9 G0 n4 h' t  i! @2 D! j                .gpio = DA850_USER_LED2,
* U, y# a; o  _  R; j* U0 o) r' l9 e, [; e4 I: d8 N
                .name = "user_led2",6 E, {2 a' M- T# R" h' X

& L+ ?. a0 _  ~# h1 i. Z( N' p( y                .default_trigger = "default-on",1 j" X, G  `2 U2 |7 Y! g

/ t" Z7 Z0 Z' f( m! D  d6 O        },; d' S% Y( E4 p# i- w+ s6 L- w4 j

# X( V8 b4 v& i+ L$ v2 e& X        {
" I1 @+ p1 @& @* g6 y" S4 [+ K# v8 j- n* t; K
                .active_low = 0,' g& r0 H8 _6 l2 j
5 ^/ U* M1 l- ?- W9 q' `* G, A
                .gpio = DA850_USER_LED3,. ~) @6 |+ c4 l5 d/ a+ T9 ]

* \2 I- W- g% F" V* O: d4 e0 ^                .name = "user_led3",
9 K: z9 J  G# O8 `9 e
" s' w3 v7 \. Z$ G+ Z. e: C% \                .default_trigger = "default-on",- c' m- t/ ]. K6 l6 W4 A. @

* B/ d" f4 p7 F4 [. i, z8 F        },: @( F6 U! ~5 g
9 ^8 C& n% m* h6 Z
        {! [3 Y3 z) k; u. \& k8 {

: O" Z; g6 m  F                .active_low = 0,
. k& B- n4 y& L) n& f* b1 E4 g: o4 I" E
                .gpio = DA850_USER_LED4,
, c& [' K# P9 C  l2 W  Q2 m; C" X% A$ l: w) ~) _+ S: ]* A8 x. [
                .name = "user_led4",7 x/ k: H# O- R7 J$ V6 \

/ ?4 n& f2 @4 s; ~5 U' y                .default_trigger = "default-on",( P4 S/ f2 ]) @# \$ l5 `# w4 v: W

3 [6 {- f- a' T0 w  b5 b* v' s        },9 D/ x2 H: z( M; I$ t& p1 M
" v  f5 P. }* X* b' I
        {% x& j% q; O4 q" g
' O. P2 R% W& o4 O7 z& o) n
                .active_low = 0,
6 g& u6 @0 t/ Q* d% y. X# z8 U$ R! [& G' o( E
                .gpio = DA850_USER_LED5,
1 N# ^) O6 C& g: |+ O/ N+ ^' e4 W; \7 j
                .name = "user_led5",
4 g% F( ^! x! R+ s& K2 |
7 M2 j2 y) C# {                .default_trigger = "default-on",0 J- @- j* v; P* Q% f

- ^1 @3 B9 e. q8 B# I! N0 J% \        },4 T. f: u6 G  C, _7 W+ W' O
4 F& I+ Y! O; v9 `
};( b) L2 p! q, p) T

, [9 X. f' Z. j& r: d/ ^: @, c, N1 h3 ?. l

. {. n8 r$ I1 x7 d& U8 x3 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: r2 v: i6 y6 \) W( g9 y* {9 ?; ^1 j( l9 e2 S2 T
        .leds = da850_evm_tl_leds,
" Z" a0 z# u7 m. V0 m! O" N, v
. b' K5 u& F+ w) D# u0 K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 U: p9 O: ]% B0 X! C

  V) X, M- L9 E};$ M' G  a* E$ o2 Q1 [6 c

8 A) e# W6 z( Q! X: G1 W) z- F9 G- Z& @  ~3 i' z
0 w& x$ {5 j4 e$ S( Q% M
static void led_dev_release(struct device *dev)
) T! |3 J% r6 ?* d" a0 _( B3 h) S. \" J: n6 _
{
1 W0 ~3 O/ P/ E6 b( b
" B) i2 _+ e& F; P1 g' r};
8 r! k7 E0 F* ?. D. C7 I3 J
! B6 r) B1 O1 A7 M2 g7 X( {9 l1 ^" E+ v( T
" D/ F" i5 z$ ~
static struct platform_device da850_evm_tl_leds_device = {
8 w+ {& S4 a! T+ v# m, F( }+ A
3 J5 v8 z- O% g& _3 O        .name                = "leds-gpio",
- {4 H/ z/ X0 L+ C) a, e& z& V' _$ X8 k' u5 N5 E0 D# V
        .id                = 1,4 n% B9 j  H5 N; y( P" E1 f$ ?
( t/ E" f5 |0 N; Z% r( K8 \$ z4 v
        .dev = {
* F$ \& ~2 k% w+ B# o: d2 _  _7 k2 [1 i: f" I6 ~5 l# z1 S5 n
                .platform_data = &da850_evm_tl_leds_pdata,0 m. P8 x* `7 |. i4 d

; z" A/ o) f2 u* p# |; l  Z                .release = led_dev_release,
. W9 ^7 h( F6 e2 X! r- o5 V$ U1 u
        }
' Y  r7 r2 A, `: x3 G( Q
% `5 g1 k! M9 k* O+ c};$ `4 d6 |  h8 j4 T* o! d
3 C  b) \# O$ Q5 g0 V
, }5 A; C$ L& ?+ O; v) ]* A

% w4 Q# @! \" Ystatic int __init led_platform_init(void)
, X: |0 r8 P. k; z6 g' ~' n: k1 Q; F- k
{
% l8 H* |" N) u. Q( e7 t+ e) j" r  k7 K) q# X1 u! z/ u
        int ret;- ?: u1 m* t$ R2 O: U5 V( `

" U% F% [& w" b3 M#if 0
% H1 v; K5 J! ]- m; f, D
: C1 Q, o5 f. K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 G0 o7 e7 u9 w7 @( z1 ?
& e9 p' K8 Y3 H, Z. ~( b) _/ r' A
        if (ret)
. q$ ^8 G: _$ e( d
. k( p$ N2 u0 M2 [4 Z9 l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- ~7 y; Y# C  w5 u$ C; q0 Y
( }: w1 T, H) n- M( _* A- N                                "%d\n", ret);
, d/ M8 E' M4 V5 [/ I
% u, N) V5 q& [' G, \#endif$ M. L; _  O% D$ n" h8 F
8 k: ]* ^) b0 h) O
        ret = platform_device_register(&da850_evm_tl_leds_device);, u/ c; H1 S+ }7 k
# k0 G) Z2 t, D, [. y  C
        if (ret)
- S. P/ i  W8 a% s' f
% K' X; I! r$ c3 q2 L: I% Y                pr_warning("Could not register som GPIO expander LEDS");
( e- C0 q) |! s) c. R0 r8 p# R8 X
        else$ V$ j! `/ u5 |6 k+ I

2 A7 F: {( L  u0 ]$ j                printk(KERN_INFO "LED register sucessful!\n");
7 g: V. A) z: \2 k
. O8 e& {7 K- O' v3 U, Y
- h' u9 _, r- W8 ^( K- ~8 k1 S) X) _! V
        return ret;: \* d1 F! ?8 X* Z+ E

" E" N* `. X' p}
1 `# r4 t' W# U' d* l- t- d* c" k, g% i! F& l  `
+ B' B4 O) @1 D/ U4 h
: l& g/ B3 n% W# s6 i0 S$ ^
static void __exit led_platform_exit(void)
* v+ h' W5 f5 v1 J
- F4 j* X6 ^1 p, L' k2 i. f5 _7 ~  ~{7 B" }' k8 s7 o: z% a

) G/ I! j) a$ c( A- `        platform_device_unregister(&da850_evm_tl_leds_device);/ D$ Y9 s' d( a" I& T6 _
0 S5 }( x# o; t, s8 h# Y5 ~* u1 n) o

# y% p6 w3 G  j* P* I# X& K6 m: U, ?& v5 d! E4 b" O
        printk(KERN_INFO "LED unregister!\n");' C( d& i( f) V' I

' T1 p1 [; |" D; f% v' t* N}5 L* o" r0 R+ b: d' ]) Q
' q& @% r3 _2 L6 R4 f* W! P# w

/ Y: F3 ^1 a8 f( J) p! w4 S! n+ O; q; f$ V' o4 f) m
module_init(led_platform_init);
1 w( K( R2 Q, G# a$ K
- H; X+ `+ L. c* Imodule_exit(led_platform_exit);
- U2 {8 p$ c& n1 N
. R& ~- O, R/ ?. v! X6 E5 G8 m# _% u2 u; ]

1 m# v" B1 c2 u2 N0 zMODULE_DESCRIPTION("Led platform driver");
! z: X/ D8 k* z7 S9 ]& R
2 \( }, y9 p9 q! \3 u+ dMODULE_AUTHOR("Tronlong");
& o/ m/ A5 o' p7 o$ ~/ r# b9 H
- T0 D$ }' W5 b* U7 \3 k  k/ GMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
: `! D( ^8 ?0 d: c& H

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32- I* F9 K5 ]2 S
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
/ C. v5 f( G+ |9 s# H ...
5 T+ y3 _& W; J7 \( e  H; G5 r
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。; G% [) r; O1 d9 W/ b* N5 E
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-9-8 15:57 , Processed in 0.045153 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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