程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 , q7 D, ~. T9 ^0 i+ |0 }
5 D# ~7 _4 T8 M1 E: M, ~# P
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
- w; k4 ?$ I) E1 s; y7 t) |7 h
& J) b' u! N9 u6 S7 c  `: T- B之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?0 q. l3 G& \* t3 V$ r

9 \8 W2 T: B* n) r0 X% 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
  i, w2 \9 G4 t$ W9 p7 wlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

/ M- U9 ?  R8 Q& x1 N3 p我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:3 m8 n; ]# b+ ]' h* h: H. A4 I
#include <linux/module.h>
" {! r5 b- b7 w( `8 a: H
3 V- M' f: R1 m2 f7 l# `#include <linux/kernel.h>
( P1 S3 ^" j/ }' D  H3 X
  E) _1 g7 p6 M2 h; X( E#include <linux/types.h>
: [5 D% E$ O! _0 M1 i  u
0 J8 ]2 Q' j5 \#include <linux/gpio.h>
  L6 ?3 A6 E! p- j5 g+ Q* @' p0 g" |( I, K" }& t) K5 B
#include <linux/leds.h>1 P6 u2 f, I( q, a6 S( c, R

1 U. q. a  e0 S# ]" ~#include <linux/platform_device.h>. D  z( g  f6 e5 z. Y
2 a& s/ a! l5 Y! N" Z7 O

. g4 C  e& c% ?) l% c' ~7 G7 N# E# A
#include <asm/mach-types.h>1 l$ Z% C7 g" Q5 N% i0 N, ]5 f9 k% n

6 p! t' X- o8 W% L' _' j0 e2 l, ?#include <asm/mach/arch.h>
4 Y+ M( j+ n% I" z/ n8 j( b+ ~
+ `) Y; g2 ]1 I8 A! ?( K#include <mach/da8xx.h>
3 U6 r0 O  w- W; O$ N8 R6 s8 h% r  ~- h2 X! z' y: ^  w" G
#include <mach/mux.h>1 T( ?( y! F' y& f* ?: S3 v4 ~

* U* ^3 z% _7 Y  }5 p, U  M; t6 I0 B9 Q7 l9 Y( E) W9 z- G

# G8 F% {7 x" W, u+ Y1 ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# L! Y) I3 `- m8 Z; c7 g# w. r$ D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ D5 a& H; K9 ]4 t7 x9 t* {" n% G0 r2 x! d8 G
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 ~' M6 {0 x3 Z1 `! z
' j' o0 p& p5 j( f. Z4 e7 o+ Z+ [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 P% Y" Z- O" w3 _, k: ?
5 {9 K! F: [# S- {/ L1 [
#define DA850_USER_LED4 GPIO_TO_PIN(6,12); b6 ^5 S4 i  X5 U% W
* E, t; V" }; U3 i. p+ g/ ^7 o
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)7 `8 e- T  O0 D  H* I
' M! J9 o2 r% g1 y5 t% H# ?  d

, ^+ y# G2 j! w& H1 n6 ~* V0 h. j$ Y: I5 x  x3 ^7 F
/* assign the tl som board LED-GPIOs*/) ^5 b: c& y* _5 L5 v9 n# ?* A/ }
  p$ l+ O' l' S  n
static const short da850_evm_tl_user_led_pins[] = {
6 l5 E: J/ W# w/ w
8 o: }4 K/ R- l$ t# K, t2 ]' h        /* These pins are definition at <mach/mux.h> file */1 e! M/ V5 H+ ?& i1 j
5 p) w9 x7 U5 ]" S$ r, G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,' L2 F6 @) N/ k) C5 v

6 ?' ^- d, a3 Y$ j  e        -13 [7 s$ ?+ l3 n+ ?% [, i! z

) M1 i. [: i5 J};
, }; G: h$ a/ l. F9 R! d* `) Z3 k7 P

2 i5 Y  }/ D( q* N4 ^  K8 J( U
static struct gpio_led da850_evm_tl_leds[] = {) O/ B) r9 z7 f* `7 p- T* p) p; N
7 f9 \8 u9 w- e  ~8 x4 Z
        {5 n0 J0 Q8 b( W5 o- r( S6 M- N# H

" O9 S# V' `- z1 ^& Y                .active_low = 0,4 G6 @. _( p2 |
5 `! [$ V7 P4 F$ i* g
                .gpio = DA850_USER_LED0,
9 \* I% o! J( A! Z
/ ?$ ~5 }% H+ z7 m0 Q7 b5 T' O                .name = "user_led0"," Z" ?/ n) f' ]1 p1 a& |/ W
, q/ y, u6 |) I# C! g: A
                .default_trigger = "default-on",
" Y# L6 s$ }& r/ J% l3 [" D
! M0 e$ Z- ^4 X        },
' Z+ Q: g7 _  y! M( C+ e8 a! r6 z. E" k% o
        {* X' k: k$ Z; g0 u  x/ h
. j! K- m% O+ n/ k3 j' r/ Q
                .active_low = 0,) E' \2 V( x$ W( X- d
8 X* G3 `/ h% K2 \# V9 m
                .gpio = DA850_USER_LED1,3 q' g" |! B% |

% s+ Q& b- w4 U( @" b) ]; L                .name = "user_led1",( h& h  _5 Q: ?! S/ S

+ g0 d7 w, @8 @, P6 S& f2 j0 M                .default_trigger = "default-on",
* @, {' k0 ^% r# J* M% H; ]% O
( k' Y# d) n& f, b4 @+ p        },1 u( V7 S  i6 n/ c# o  ]* W  m
' S$ G# ?" I6 I4 j8 m: E) @
        {
& k) K: K0 N3 ]- F/ [: s5 \0 }% W/ `1 G  |! C2 [- m' f
                .active_low = 0,
5 l# G( l: ~, O1 @/ L+ f# l* C0 g
                .gpio = DA850_USER_LED2,
5 H  {, H) ]/ T, W# G+ Y" [  @) p3 n' j# S7 F4 x- M5 e1 @. b
                .name = "user_led2",
7 E9 Z1 v! |5 ?2 K. {) E0 C2 q, X
# B6 @" O! Q0 x                .default_trigger = "default-on",
) ~0 l! {0 y. i0 S" ~
  N) b% D! `- v        },
8 m& p6 p4 Y9 A$ _2 d0 H% `: u8 S( y) ?' o' \( q9 U
        {: I# D+ K6 l1 C3 i

/ p) s: s, P# U  ~* m                .active_low = 0,/ u6 U9 j' f& r0 L4 Z8 d5 M5 w% v
2 }% ~3 V: `' ^9 c8 B! f
                .gpio = DA850_USER_LED3,7 Q+ C2 W" @& G  h0 F+ S

& ^% G0 h% o9 ]) ^                .name = "user_led3",0 {  ?6 S, h3 j3 v* a1 X. H
: Q7 E' b# V, z) n7 f9 S+ p
                .default_trigger = "default-on",
9 u( B& f9 k0 H$ q; u5 s$ j3 y/ D3 T9 Y2 t+ a+ H
        },/ [% h. ?$ c/ \$ S% Y# I

5 ?% j2 I7 O0 b  R5 M8 i        {' A, f6 i& ]2 V' v9 O) y) k
6 U5 `8 e% t% ~3 D4 T) w% p
                .active_low = 0,! F' J: e' F4 ?8 J" [9 Y

' ]0 v. q0 V# a7 K4 Y                .gpio = DA850_USER_LED4,7 I! N5 f! }; t0 M
8 u# V* m1 A7 }. f! U8 [( m
                .name = "user_led4",; V% a" l8 r& l  r, Y7 h7 C

4 |) A7 W/ c  d0 w                .default_trigger = "default-on",
0 y: t8 n" @2 B& _' G: }
; A" Y/ U9 S7 J0 B        },9 o& f! f2 E+ Y+ c; i! a$ J" o

, v+ q2 ~3 ]$ O8 G        {
6 `) O! m0 ^/ h: ?& P
+ p6 c+ K. b4 ]% ^$ e: {( \                .active_low = 0,
2 [+ C0 w8 m$ ^( N% X$ R" V5 T  S# c2 }$ L9 l* d" S
                .gpio = DA850_USER_LED5,
9 ^" _% V/ i. ?' H5 E; L" ]" `8 t; ^" ^6 k
                .name = "user_led5",
' l' G* n6 b# R$ R
. ^1 t$ ?- k. E5 D; F# d. W                .default_trigger = "default-on",
0 X) c5 O1 X4 |7 B9 j; \& `: }. m, C  N' q* z0 ^! U; F
        },
; v  s( S0 U+ y' U& J( k' Y+ R( x1 Y
};
4 Q# h" D; n: d* v! b
: H  B, o+ {6 Y- ]" E4 m/ _& v. ]% O4 T' u! @

8 O6 @1 ~" @9 l: [9 N4 O: Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# a- Q! _! h/ Z6 B

, M4 g1 v3 q$ b) v# N        .leds = da850_evm_tl_leds,, ?9 }, W/ _& o
- M+ F# j; X# R$ N' R. e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," X+ U) [$ q: I) s& Z
# m) F4 a+ V  ?7 G- l2 w
};
% h0 Q2 j; S1 L( K- Y
; e& C& F" _+ `, m3 O" x! j" C" n, R$ d6 l, e
% N1 p/ H0 I1 r/ I/ ?- ^
static void led_dev_release(struct device *dev)
% G. B( f  \! {9 O+ \' r
& H& d$ n* s- t# ^: ]( M  Z& [{# v: J( N  w, }) J

4 ~% L7 G! C; ?7 V, y! k};" R9 x& A! V: h4 B) q! }$ O

0 j4 V8 R$ g. R: e6 k3 C) g& O4 W2 U  t/ t7 g
+ f* l/ g8 U9 M. ?0 V3 p# p
static struct platform_device da850_evm_tl_leds_device = {
1 Z3 ?  b' ^" \9 T% E' e8 `0 K
, T. F0 u3 `; @( Q9 v8 {! R        .name                = "leds-gpio",6 q4 \/ f4 y: E1 }+ n
, C$ {2 d4 @: ~- }) c3 K5 z7 x
        .id                = 1,
# u7 {8 `! j8 ^+ Q& B2 \! \) s: R2 w0 t
        .dev = {) ~' k. b$ j8 u; h; `" k

& `9 ]# f' `! ]# D( Y" G2 s6 e                .platform_data = &da850_evm_tl_leds_pdata,8 n! Z7 ?1 }$ s

! e2 S% I) l; }% q3 U                .release = led_dev_release,
9 _2 o, Q% c/ b4 p( P- c# s2 t, c5 c1 [9 F1 S' O% @: ]" z( L, r
        }8 v, A8 I. k" U

  L/ ^$ N+ E% K: f! l2 y* E};- r" v# d; V/ R
. [( q! |0 V- ?+ x# e* f

; |' `6 F& W. a5 g/ r- k
$ A( C. W* a9 E5 A1 e/ a( hstatic int __init led_platform_init(void)
2 Z# X  w9 D  ^" s5 g
1 e/ n1 [5 J# X+ F+ `{
( x  R/ M# B7 |5 ~0 n! d( D" X: P. J( p; o" i8 Q) Z' c
        int ret;9 Q+ @2 `3 F4 b; S( _
+ [4 d3 g: n; L: k5 P
#if 0) S3 x' H1 a5 ~3 W) Y, ]

' ~$ A- z2 d+ j" R8 R$ J& Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* ]9 h! w7 r+ F8 q
9 i) u* z/ ~8 N3 d& f$ J/ N        if (ret)% ]- t4 ?: u8 S9 S+ H& j+ ~
. k& i$ R$ U7 h( f" V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 ?+ t6 H$ b. {$ }) @

6 y3 A0 n7 N$ h- R  }$ I                                "%d\n", ret);
& T5 |& O) v7 P# l
8 P% s& H& F/ N#endif4 ]8 }6 Q2 y) v% o: z- T2 H

# g  U: `7 b5 H# Q0 B0 z        ret = platform_device_register(&da850_evm_tl_leds_device);( E$ k0 J1 y' a
2 Z5 Z/ r$ G# o
        if (ret)
9 n7 B/ T& ]& [1 I7 N, |. u
, P  \0 C4 y2 c! ~2 j                pr_warning("Could not register som GPIO expander LEDS");* u7 |6 l3 O  x

- l1 G7 d7 {+ K" C$ M' x        else
9 Y. E+ u) I) e! p/ f
6 l/ N+ J7 Z" [' ~) B/ N                printk(KERN_INFO "LED register sucessful!\n");
  o( e# ~* a, a* w3 ^4 x; P5 R, ~3 z% k( D

  `1 B& m  U  ]. ~2 T' \' \: x) l" y3 i% R: |
        return ret;
$ k0 E1 V- F3 c  m9 J- V: I4 a
- b2 t% x; y3 V# n}
% I2 v5 L2 t( K2 P5 a) \1 F. |5 l9 Y
- S/ K5 Q6 S, D: R$ q
/ i( Y1 M& I' @" H
static void __exit led_platform_exit(void)
' Z  c& X) R3 P0 F( |; B, O3 h& |) Y8 d" v/ |9 n6 N6 |
{; c3 @/ ^! d% D4 ]; z4 N
" g2 ~- ]* H4 q4 y$ B* Z( A
        platform_device_unregister(&da850_evm_tl_leds_device);
! r! z1 Z6 k- r8 @8 u6 U* A  |  u3 p2 E. F5 V  Z7 ]

: M: i8 h% ?( ?3 h& D0 v
7 y. ^2 {  N3 a2 U+ X1 ~  p- p        printk(KERN_INFO "LED unregister!\n");. G' ?* M( Y8 o+ Y3 Y3 f

% f' }, ~3 ]* ^9 ~}) c9 V* d) ~! ?$ O2 e5 F- K6 T2 V
: R: H$ u& J# q# Z, e

7 w2 v8 `7 q+ d7 S, w6 N* K; B6 V6 J1 r. _% U4 l9 F/ W$ r
module_init(led_platform_init);
  r+ M. g+ p7 Z
" ~& u/ Y7 e* [+ M. q* gmodule_exit(led_platform_exit);+ Z$ b. i4 @/ A( c
$ R/ b3 {' x/ a% h' `9 s
9 v$ s( Z  W2 g# ?1 \5 x

' R% p6 N) X% m5 J0 QMODULE_DESCRIPTION("Led platform driver");" B) h$ E' ]  o: U! ~( }

: n5 B& r8 |+ }# ^# iMODULE_AUTHOR("Tronlong");
9 W( I, O6 q; m3 @7 u
1 H4 _9 u: o7 X$ fMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
0 |! c: [) E1 X6 D* N

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
( _) q6 I" o$ J5 C( ~: q您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
1 a& C8 V+ A) y/ w( U% E& A  N! { ...

7 h: t, M" T5 Y$ N好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
! Y7 A! Z- b1 s7 ]7 ]$ z7 @, ?  V5 Rhttp://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, 2026-3-30 19:05 , Processed in 0.049485 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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