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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 . M* p2 h2 [7 l. p8 q
3 Y. G; N' m: L% U! c% ]( K
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
2 y( }2 k4 _/ a3 X8 P5 D
# R* G9 x& V) I之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?/ ?' b% O  r6 F& d( [! m

2 s9 i5 {( m/ V" P' D1 `( `

本帖子中包含更多资源

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

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/ E, c3 C# k3 _. C2 ^
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
4 B5 c6 l6 W  K) {! m
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:% W* y$ W; R3 l4 h4 p, L! n$ u
#include <linux/module.h>
% b7 p; B* a! R+ p
$ ?) S$ _3 T" ^) O7 M#include <linux/kernel.h>
) p' C0 E3 B  ^5 ]4 }3 X6 s$ S( l
* e! E$ H7 O' K) `3 T; X" K6 _" c5 G#include <linux/types.h>
* x% d4 j. D# o  Y. E% w, h7 @4 M
#include <linux/gpio.h>
8 _) I/ S; I. t( h2 ~& i! X5 c
  z7 z$ C! a. h#include <linux/leds.h>+ j  {- V% W& U6 Y

6 j9 t1 w  b6 G! u( {4 x#include <linux/platform_device.h>7 i/ q* _# t9 q# R) Z% ^
9 U$ R& ?3 A) J
8 Z, i0 {$ q% I6 T( p6 P
( Y" C. T; F( J% O3 I6 y1 z
#include <asm/mach-types.h>
( G; Q# }8 g) p' x8 H& K) y! f2 O% r, p! r$ ~0 F
#include <asm/mach/arch.h>+ j+ u4 ^! [, L: ^

1 ^; Q# A4 O  q#include <mach/da8xx.h>& l7 I$ o9 v5 F9 c: U* i- M" D, C
$ k  S4 ?" ^( t$ S4 t- n( P6 ~
#include <mach/mux.h>8 M8 l# b7 H' _8 [& @# P4 y
% W1 C' C. K. f6 m( b' V3 u4 g

4 f% B% i8 U# K" s8 K2 F" X/ `* B+ K
: |, H. g# W1 L#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); Q! g: R/ {' R# {" H
, D; W" ]( a- {  T4 W; t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); i/ b# D) ]3 f7 N
) N; e* w" [& i2 T; P$ l" F  ]2 B2 u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! q3 ~. H  h& U+ e" }- j; X0 h) w: n  W# K8 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), E% ^6 e2 t. n  Y# z
8 l2 ]0 |& `2 I+ M) q; B
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)9 G8 ]4 `! P' E9 v0 v4 Z( k6 P

. b. V- f' k" s1 q5 x7 C# N: r#define DA850_USER_LED5 GPIO_TO_PIN(6,13)4 E- B. G) ~) g1 t
  L3 j5 O; d( Z' n
+ y$ }& u. w* V; X
+ m6 P) h6 v! a0 f: O) w
/* assign the tl som board LED-GPIOs*/
$ I* L- S" I3 v# Z' L3 J0 n1 c: r  v) d  n
static const short da850_evm_tl_user_led_pins[] = {
% ^( i, x: t( |6 m- }
5 o6 W3 g6 N/ S) l2 a) Z5 W( E        /* These pins are definition at <mach/mux.h> file */
* {" \, ]. w: l( z' q1 R* M9 r' Y0 ~" ~/ V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
' y# P8 [( |* h1 t& l/ h
8 D- x  b  V, z        -1/ O+ r$ @5 b5 g

6 Z% h$ H& l% |. t5 v$ c};* n' U! Q$ O8 R( i9 [! f

% v2 o8 w0 I/ g# G: B4 f: _, w/ A7 Q. E
1 J. X/ J) @* d  m0 c$ l% ~. t5 b! n- q' n) a  d1 d
static struct gpio_led da850_evm_tl_leds[] = {( Z0 Z2 y; D- ]8 D

% ^& _- G" u! [3 r6 M        {
4 x! E; x( g* l3 @0 p; S1 S; T4 R1 g' @& F" ]2 I8 g& N$ O; W' M
                .active_low = 0,
2 C  B: Y1 w( ]& V6 E) A& Y+ G. _4 J
7 j; ?2 @4 h" J& U                .gpio = DA850_USER_LED0,
' I8 h- \8 i0 ^2 _: H7 C. e0 x% w' ^$ Q4 v2 q
                .name = "user_led0",
' K$ f# w; E! G; s* Y. L+ U* P! ~  W" k2 k/ q
                .default_trigger = "default-on",7 Y& q3 U; b9 l0 q4 A2 T' G9 F+ R

9 y- ^& s$ k& F7 X3 h+ f        },0 e" a5 [9 Q& h1 K7 z$ u

: w( |' ]; o: ~. ?0 F5 T        {: a4 i( K7 a  O5 Q$ d$ D* t
* ]# l& l$ [, C4 z9 h0 s" t" p* _
                .active_low = 0,
6 d" E5 r+ r; |. D7 Z, ]8 q8 _
" b% E' l; `3 ~4 U                .gpio = DA850_USER_LED1,
3 |* O, D4 a) ~  i: y1 @5 n% i6 o5 p* k/ p$ K3 d
                .name = "user_led1",
/ z. ^6 a  y$ ?# a% M. j6 E
. I* ?8 R6 e+ z5 _1 k6 y% l5 Q" v                .default_trigger = "default-on",- p3 V1 v% R* X, H
4 S4 e7 y- _  E
        },- I3 f; m4 l0 ?8 F2 _- y
' i$ X6 W. S1 u5 Q: m) T
        {& O. |! K3 L, b7 k1 r6 m7 }

5 [4 T! T' R  E2 R' N' p                .active_low = 0,6 s+ u2 D! p4 v0 R
$ d. G7 r4 I& E5 r, J
                .gpio = DA850_USER_LED2,' V7 c0 d* r  h; w' W6 v

* K- }2 k5 L  s                .name = "user_led2",: J+ y8 Q6 o+ L8 a$ W' T
0 u1 v7 ?8 Q6 G$ K
                .default_trigger = "default-on",4 I3 K4 w1 u7 c+ L" O1 |
) K: ?1 B3 s* m0 E( J  U
        },8 i; e& }/ e8 O! e( h

7 C- i7 ?$ Y9 q: O- N        {) q' f! W1 U" m1 d

6 h' B  u1 D- }) ?" P0 C                .active_low = 0,1 q. [# b4 u. p/ z5 l9 I1 D

6 g( `  g% x7 b5 ]/ d9 V7 _7 s" U                .gpio = DA850_USER_LED3,. M+ r) k, _; x) g/ e0 z

: g4 h, k! ?. b% O                .name = "user_led3",
3 S1 }9 W  b) S, K4 z. u% C  P' q1 B* u! C
                .default_trigger = "default-on",7 c& T) G; k& O7 q. L% Y1 \4 P

3 G4 j! i* \( P" B7 k0 U8 z        },
! |% B( H& q8 n
. r/ M' H( ]; b' x9 g        {0 z$ ~4 a) }% K3 _( ]6 Q

' i8 @! Q! w" p                .active_low = 0,
) ~+ {& d3 f- t$ }6 ]6 x0 m* }2 L* L# y' X" O! j, E3 \8 P
                .gpio = DA850_USER_LED4,
3 J$ i! {/ p: X  H  u3 n  H! x. r6 q* C: H
                .name = "user_led4",* K7 k6 Z/ j' X( F9 Y6 `8 g
8 V( ^- Z* f3 P4 K+ r
                .default_trigger = "default-on",2 ^; W4 Y+ a: h& K3 }: |
' R. g6 [3 ?+ j: D& `
        },
( Q* S& [0 [/ m5 j, o
$ T" Q" J0 Q4 [+ f$ w/ |/ Z        {' I4 {* h$ U9 ^, d7 K; \- K
6 Z& [+ I6 w4 @( D
                .active_low = 0,
' a) m& |  A$ C9 [2 P0 w: }( s% Q7 U6 g( m/ ^# u1 h
                .gpio = DA850_USER_LED5,
9 b+ R1 k( `5 Y# s# J4 p
2 E0 X7 R5 M9 x5 q! U* I                .name = "user_led5",
3 E+ }) E# b% ]2 f3 P8 D* `
4 U0 l" q2 e/ U2 G                .default_trigger = "default-on",
1 Y$ `5 C, p2 w) {: i& [
. M- X, P& u2 w& k# [        },
4 A# Q9 Z1 {' V5 L
: ?( T+ D( L- v) I7 z};
+ Y! l, x+ x' m8 F
! _+ b% E" G- H
! P1 Y: I. \3 F) q3 O1 w1 s  w/ Q0 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" t  P4 J4 B7 C  s2 C) I& I+ @9 ?9 e
        .leds = da850_evm_tl_leds,
$ b+ l! _0 c* _' o1 i6 i% d& o/ w
7 V" C& |% @* d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 S) L' P  V# F7 h% `! `

2 l7 h. `! a5 _$ J};8 K% z; C  G' x, B9 n
5 H, j$ C  ~/ k

1 Y; u  Z0 x) H  y: I* }8 _; e% o. M8 S4 l. g* h1 p
static void led_dev_release(struct device *dev)
4 x& }% a0 Q" Y8 N* J6 U* Q) Y6 |# i4 s+ U3 _
{
5 g- {+ B" M- P! y' X, a1 O7 p) I9 P0 p9 m" x7 k6 V
};
  ~, [) b/ h1 E! o+ m
- ~8 Y! m9 @" Y. G$ X; o' e9 a4 [' P" y* |# T' Y; U; H
0 C$ a' K2 t$ ]
static struct platform_device da850_evm_tl_leds_device = {
4 v- o% R7 N' M$ x( a3 O- T3 u$ k- [% r: e: a
        .name                = "leds-gpio",$ _1 ]9 `5 ~8 C8 C7 [# I
, h, R# j% J1 S6 `2 w  N
        .id                = 1,
1 V7 V# |5 ~* {+ C7 f) u7 v2 ?, P, d$ \" {% }! e
        .dev = {& }9 _# g" _9 d# [3 I

# t! {! e5 u, V* t; P7 m                .platform_data = &da850_evm_tl_leds_pdata,3 p  y( @- m5 J! q2 j
: X8 I6 y: d) L: O
                .release = led_dev_release,- _1 u% u& F& l$ Y# s1 ]& @
. u. C1 i0 f  C
        }
$ z- M, d+ \9 c5 n5 k* }
; D% {9 L# B7 N; z9 r' z};; D" z+ p) \0 R2 Q- J

5 n4 d) a! X/ D. e9 T/ A. ?. W5 W6 C& k, `1 m0 u
8 @+ R* ~8 j0 T. Z
static int __init led_platform_init(void)# M$ c9 ?& A6 T! d# F

% @! C3 p4 N1 o5 ?; i: O{& l5 N$ {4 ^; c0 V7 o
" \8 j  B" U& E1 {1 o
        int ret;
4 {% ^: Y1 @! o7 k5 r1 b: {% p/ p3 u
#if 0
/ K" a9 L; D9 d/ ?% a' `2 Y5 U2 |4 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. U# ^: A3 [8 r0 x# D2 G2 g- X  T4 i6 e) j5 C  N2 u+ t$ f& N. n% I
        if (ret)/ R8 e5 l5 B9 l- g& x- g; K) p

0 j9 ^3 z! r7 o! L4 c( i1 ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  a0 l' @1 @. M4 S) |) D
  b  O0 Y" p1 ^% L4 w: t% u
                                "%d\n", ret);( i+ p$ n9 T( \

* Z% I# V; b; x3 X4 z#endif
$ p1 b6 N$ L2 H4 ^0 E5 |/ c$ o  }7 i0 q
  ~& g8 c, V4 o& S        ret = platform_device_register(&da850_evm_tl_leds_device);
7 c. z5 G4 g7 M% c- g
8 s+ A/ X4 ^- A1 @# S        if (ret)$ d2 a4 e* c2 F; c

2 A! b7 d" c+ [# U3 l1 }                pr_warning("Could not register som GPIO expander LEDS");
6 o5 x6 i2 Y/ u- s% C1 u3 F: r9 Q1 F; [6 ^4 t1 S& g
        else
0 j# s1 ~+ v  m- A1 e
& S! B2 v( I2 j& n3 y                printk(KERN_INFO "LED register sucessful!\n");
  ^3 F- X( f7 t: w) ^: ^  c$ P: o" E) g0 _! C" R4 t6 I9 L

* s' d( L4 N' B( V9 E; l  a) E
, k6 _) J0 l. B9 e) Q. Y        return ret;! k. w( ]  T! b' Y1 F* w* l1 A$ L
' M: `# @, ]0 d* c9 `/ N" {5 O: D7 Z
}" q* B( [4 S- o$ m+ t

, y/ r- P# ]$ ~8 m  H7 V' \* U  Y$ k0 m# o
% J4 F; W6 \) d: g' C
static void __exit led_platform_exit(void): I' v9 X6 T* X% w* b: Q; v
6 z4 O. ]# A& x0 Z  N0 {
{6 C0 @) N$ G) c4 P+ o  k2 Q2 J

% D& i0 }; q" z+ M- H        platform_device_unregister(&da850_evm_tl_leds_device);
+ Z( R  }3 {$ n/ B. G& K# u6 }  q, }$ [) _7 V, @/ y

. w" q. M3 q  d! `! x/ _4 W& x1 G# E* p- i! m
        printk(KERN_INFO "LED unregister!\n");
0 J0 a6 i7 m+ M* z! ]8 }' T' N% l$ U& R& V( I
}- y6 J7 \$ y, K/ u" d  [( Y
0 Z$ a: b% A3 \

. T  o7 N* l& T' B( B2 l& {5 h9 U( |, |' A9 V
module_init(led_platform_init);
+ D+ e* T" q# \9 v- N% ]; m4 _0 `5 l0 e- L6 K
module_exit(led_platform_exit);
# u4 Z* H* t( f: @# e1 m8 k' Z0 Q  |' G
) E( _5 N* i- e* p4 q3 u% @
/ f  Y2 ^4 W& L" J0 b5 `
" Z  {# c) L' @3 @MODULE_DESCRIPTION("Led platform driver");
' d6 d4 G/ @* Y
9 D+ C, K% C8 UMODULE_AUTHOR("Tronlong");2 C& G* v8 j4 g1 {
: q3 A! w* T5 i* U, ?! K( |
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。0 L- M( R0 {  g- x% t% y

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
" n# j" P2 j% I, ?7 W' d  }: K您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。1 R& A9 T  g5 U$ \- i
...
, z+ v  @$ M: G  A. a) E% H
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。+ C& x) C% J* }: O$ m/ A
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-6-15 21:33 , Processed in 0.044177 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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