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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 7 r  w( {* Z4 v" J
3 e% Y* y; d3 p
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的% C& R; I4 W; ^  f8 Z1 R. p5 v

) p8 `6 n& F+ F' X) C; f- N/ X之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
4 p" s* e4 Y$ `" p+ E/ S! I* T& W9 T& Z3 V1 w5 R6 @* H; e# D7 P+ q

本帖子中包含更多资源

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

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; U. V' q1 T  R
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

7 c. C' x! V5 G8 h" `: F我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:8 j0 {! ^1 G1 J: D# v
#include <linux/module.h>
1 C; t0 N/ @4 Y6 a1 B
! Y0 x4 p- k1 q( W. V8 b5 m/ @' m( D#include <linux/kernel.h>0 a5 I5 H" V/ N" y
& g  V9 O# G0 l! D3 z' b
#include <linux/types.h>
3 M/ v- o& p! ]# }2 Y6 x* ]! }# d, W" t
#include <linux/gpio.h>. g, a. Y/ ^) G" @; p
+ Y: l1 y* Z. b. ?2 @
#include <linux/leds.h>
- v# ^. p1 B5 U  x+ s0 n0 N8 I9 l, Z  h" d6 M
#include <linux/platform_device.h>- J) ?0 h8 U" |0 ~1 g1 l
$ M1 U0 T9 m# c7 I4 t; G
+ q& P* E4 Q/ ]2 |: w
5 O6 X0 h1 h2 Y: o6 H1 h6 j& a
#include <asm/mach-types.h>4 n, ^8 z# F; \
. O4 N( k0 b5 X6 g! J
#include <asm/mach/arch.h>$ Y% [& Y" x5 R# D" d- s* ]* \1 [
+ b6 Y  y2 U9 S* ?
#include <mach/da8xx.h>; ]" A6 }- T" ~' ]' ], D

) L1 m! q% b) L$ k4 Y" m/ f5 f#include <mach/mux.h>
+ ^9 R  m* k6 s- R
% z7 l' U* r: z5 B5 [+ e( ~: h2 h
# `. L3 k5 [% t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). v9 V0 [5 j# V; p. E* |# ]

" ~& H* M, Q) U4 V& p+ f' u: h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 x- [4 w3 o+ v) P

) I; @) D3 k1 |# ]+ M#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ ^+ {  ]8 }& o/ j% F, N% J

/ W+ m8 Y: w! Q; W$ h8 ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 d6 J$ Y5 Z# l) @; r" f* Z; c+ ?. {8 B8 z4 w8 c+ u: \, }
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
$ S* q; P$ h& H2 ?& \# k# F1 H0 }4 Z
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
+ z0 K4 C" q  {5 T' t% @$ w* }- A* x5 m# i: X. L) D
& E8 l# g- X, |$ p% k- w

/ \4 m1 c) ?! ?4 D/* assign the tl som board LED-GPIOs*/- G1 ?" S4 A& }# @# R- x
: s; p4 H1 W" M* x% S. Y3 O4 ~
static const short da850_evm_tl_user_led_pins[] = {  ^6 {) i! _3 E) |" G" M) L% q" i7 V
: |; {% l0 s% D% z* a8 ]
        /* These pins are definition at <mach/mux.h> file */7 C4 x( V+ h  S! x: I6 U% S

* g( A( M/ X6 y9 ?5 J# c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,) ?, z( l  H" }% \$ i) u1 D3 w; \
# p% V3 M. f+ x) M, t
        -10 t& H% ^7 j- E' \# K

# E* Y! f2 Y# L% L" P};
" `& N4 p$ f7 h8 P# s) Q! `! I
" L4 x% T/ W6 p8 g# b4 c) D9 p" [1 e! l& A- b" U  O, _1 B

' n$ e6 f7 z% k+ kstatic struct gpio_led da850_evm_tl_leds[] = {' c0 {1 ^: _; X$ b7 q5 y

. I! z3 r( U6 O9 {. r        {  C! I3 A& ^6 S+ k% l; h
+ J$ l! R, f3 C2 O) n# X
                .active_low = 0,3 C8 I6 a  Z! E; U
$ q. \/ [7 f9 \3 n( N6 M, M
                .gpio = DA850_USER_LED0,
0 w% g+ [: |' y" d  f3 p1 s! K' D$ I  a% U
                .name = "user_led0",5 Y) P) c! M+ D9 ^! D

3 u. p6 |, N4 G6 H8 _$ a: G, V                .default_trigger = "default-on",# M, }+ P! k  Q( z/ D9 v, D6 X1 u

) }* `8 {3 Z5 e4 b) U0 N3 Y        },2 [, G5 s% X- E
! n& S- o/ C5 a( g8 v6 t
        {2 L, r: Z( J+ s7 J
; l, K1 N0 Q, d( ^* D
                .active_low = 0,$ E' @2 F& H$ B( K
' }* _( }8 Y8 V! F% \
                .gpio = DA850_USER_LED1,7 W/ e7 s" w" D
. o2 B( A' K+ o3 c* X( c
                .name = "user_led1",
0 B8 P' [7 X: N6 [& u! Y: Y
% W6 I& }$ B% V) o, z                .default_trigger = "default-on",
  ^$ G( w: X* D) V4 i% h0 i8 |7 a; i( \( [" V, T9 F
        },
1 O/ l( j& M+ {& @2 M( l( L
  D0 n2 ~, x' b- e2 e        {* U  W7 R7 x& L7 [* `) n6 `( Z
6 S5 G$ M! ?, z! a+ `2 L
                .active_low = 0,& u: C+ I/ @- M5 i' d& m: z; K2 ]

, K0 k7 @  f; I) n; _                .gpio = DA850_USER_LED2,% e9 k3 ~8 m+ ?
6 o/ y' G# B5 d6 K
                .name = "user_led2",
; I0 j/ g) v# [) B
3 A) e( ^0 S+ \4 R6 R! A                .default_trigger = "default-on",
5 n! e3 G' B# g: t4 V% T- h! b+ ^/ K3 I! r9 V' n
        },
; e2 l* W( u; H7 u1 J# G. I, L: \
9 P6 B) h: l# X) j# \, I* h        {" G' k( C0 W# a& D

7 y- T: c! w+ K                .active_low = 0,
( ^# W* e5 @# ?/ V' Z* n3 {* P3 D3 I2 f- l4 q1 Y. |9 l
                .gpio = DA850_USER_LED3,: j' a* {8 |9 f+ M8 ?3 Y$ c+ y
( G8 W7 H& U/ p7 U9 V' b
                .name = "user_led3",
4 V# ^* ?- u7 ?( r# M* v  y% P2 U2 O9 h  _5 M- b
                .default_trigger = "default-on",
  _1 }4 m% y/ x. A! j8 f
2 n- P! m; z1 s* v" v3 j) O        }," T& [' I3 a! x; J

: l$ O# f2 v5 S- G* i- `        {
. v/ e2 S" p1 N7 X  T% k6 W' F0 w2 X+ W
                .active_low = 0,1 O. J* E( {7 Q5 {  s" U

. ?6 }% b9 S( X/ l! i7 H& }                .gpio = DA850_USER_LED4,
" V' y/ A0 q; R" U8 p0 V  Q( j2 M' Z' ?+ [2 p
                .name = "user_led4",
# {- h5 W1 A8 H  C5 y/ J. b% S1 ]% _$ Q& ~. C( ]2 w
                .default_trigger = "default-on",
9 z& G7 W- `. \/ B! A) O; G. k) k7 l" A
        },& W- \. K$ E' f$ C

! {0 N+ R4 o% L4 l% c$ S3 F+ u        {
: ?6 K1 [& t$ z2 u7 B+ ]+ j( U# O+ v& P' |* h+ ?+ Z. H
                .active_low = 0,
/ `5 m; y3 h" K1 ]1 Z4 |7 a! f& l" P1 X, _, G( N& }/ E  T' X
                .gpio = DA850_USER_LED5,( G+ q1 s, H3 c& ]- M& o

, {6 h$ l* Q; p: A                .name = "user_led5",
1 `1 [4 Y. c3 `& j5 `. b! i0 I, p$ f1 t7 H
                .default_trigger = "default-on",: X# J  P4 ^( l0 U( }: ~7 m/ b
& ^3 ]  M! z/ d9 e7 H6 i% f% D
        },
6 ]# p# e: H6 S0 d8 r& f, S; t" q% u% d5 Y. K+ w' E: R+ ]
};* {: M: f, D/ K: S
0 q: _6 l# {! h% F7 G5 e2 J
8 c2 {4 V2 U( T5 j
6 [7 G" v& _5 w" H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: x7 ]: H, R8 M7 p* ^( g7 `; e$ l' J& A
        .leds = da850_evm_tl_leds,+ j' F6 J" O5 Y
% h7 I, A, R. Y% K; d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ E1 Y7 d+ j% f: O/ y8 Z% ]4 S8 V4 O2 X6 \3 ]% @8 c
};
" D- s/ f5 L4 i7 X" t( @; ^
. S9 P+ W  [& ?5 R+ F. _( W
" R+ M1 r1 Z/ {' i7 f# G, H' b" [- X7 d) U* U+ Y( }3 O: p) ~/ J
static void led_dev_release(struct device *dev)
6 K6 C0 [) n5 M0 s6 k8 M
* E' r6 R1 ~6 A9 g{
) o- h9 Y. s, ]2 ?2 y
0 z" i- B8 M* j};
2 k% V( ?: B9 q7 S( C
' u- J  f+ z) p7 \/ Z" L, w3 e9 Z9 z! j3 c2 F! \! L

' D" u3 E8 c# H& _static struct platform_device da850_evm_tl_leds_device = {
1 g6 \& m: d7 B) d- h& V& O" x* j
        .name                = "leds-gpio",
& N8 W  P. K/ J* q* U  c; Z" O1 D0 b! H( H5 }6 v
        .id                = 1,0 Z1 J4 V! v" i% C

' k3 |& n, h' @7 X6 {        .dev = {1 g% X5 b3 m  n' ]
2 H7 ~) x9 d4 y* i
                .platform_data = &da850_evm_tl_leds_pdata,
& w( p! {0 s' ?- l4 }1 @" N! l! q4 f2 H/ W
                .release = led_dev_release,7 l5 G, z0 L3 i8 J
& K4 N4 E* |( Z6 V  z- i
        }
+ @* U& u2 E% I1 n. z$ m$ P4 @
2 n; d3 }1 y+ n5 |};6 ^/ j; t; c4 q% r

; v, m" S/ h$ N9 B1 R4 X5 @% u7 n- Q7 B# ~2 a% e
3 Z$ `; L/ r: u9 p/ t! i+ T
static int __init led_platform_init(void)$ |5 @6 c4 q; z2 O

2 \; g1 i+ C& Y- w# e{' P% s2 }6 |* I" w
; W$ p- }& |6 f  [+ v
        int ret;
7 @- c* A- k) e( z
2 C+ J! l9 g) {0 R#if 0, |' l. D- q% N6 y
- _& j+ V8 p1 W1 L$ @) m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 @6 d# G" i2 R& A8 ]
$ h9 J: U5 r1 L' B, h0 U        if (ret)8 O4 ?7 s. |4 K% y7 x: d/ \# z

6 l& R1 z  s) Z. r8 q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 O' U5 q+ M0 Y/ @& P2 Q
! b; ~) h/ l/ t                                "%d\n", ret);. t3 }1 G" A) g+ k2 E

8 R! F; C: c5 `#endif. C; X9 v* G: y. t$ D
/ Z; c. y. ?+ A' i' k/ a) D
        ret = platform_device_register(&da850_evm_tl_leds_device);* b) r; Z" V1 V, J$ C+ R" W
" R9 W: q$ a, {- \7 b
        if (ret)
- ]% v! W4 g9 C1 v- H5 X3 _: y" r% W# \
                pr_warning("Could not register som GPIO expander LEDS");
( t8 t, _: k  E: b% P# t6 @5 G' Y8 B" S
        else1 C8 c3 q6 f# ]- S4 k( S1 i

1 e: {6 d0 B. A- q  W                printk(KERN_INFO "LED register sucessful!\n");  B2 h$ Y/ l1 o( o3 q5 ^3 h7 o- Z
4 J5 Y7 U2 P+ b/ U) P

* O& \. N7 Y5 O; c6 b- h6 n" v, {4 k; G
7 w  B: t6 j, e6 ~' I- u        return ret;
, @: A- F" n8 U/ H5 ~
" B5 u, [2 e! C  Z9 o3 Q}
+ q! Z2 B2 H6 A5 G& d1 ]
# P* A, I5 Q  w3 D! r
. ?: v+ B" b- {4 J) E4 f9 n+ `: `5 p1 E# \2 k& |8 Y, @: X
static void __exit led_platform_exit(void)
- q8 c0 i9 {4 y1 O4 H
1 b1 K# O6 P* U! y{
, r8 _. j/ [' z" y  }! s7 p& W# w
8 I; g* a; a- U) z' k3 J        platform_device_unregister(&da850_evm_tl_leds_device);6 d3 e0 t- m# E: r" u' K
  t% W5 q0 a( i9 ~+ z9 s" P
' n* D. u4 o2 e  P8 x
$ B5 a/ o& m# F- _  j0 d7 l( X
        printk(KERN_INFO "LED unregister!\n");3 w7 E9 |8 V( i+ i" o

7 F, t! v+ x6 {3 y% L}
% N" g: x- K4 e6 L
, ^, `; t! h  S
; s, t2 u) h* u# Y8 k" f; a% T
! A' l3 N: r2 k( c4 K4 C4 S$ a9 xmodule_init(led_platform_init);' {& m5 E: W0 d/ Y

& W: e0 E1 T2 F3 \! V! @5 f# ?module_exit(led_platform_exit);2 A: a! o( e7 w: p1 K

, F, f5 c7 m& w5 \9 g( F
2 o9 }- I  e$ D  i9 v/ B1 k
! H" D* C  I2 z2 qMODULE_DESCRIPTION("Led platform driver");" V8 N7 u5 j/ O( Y

  v, G; j; o! g# x. l, \( A+ R$ BMODULE_AUTHOR("Tronlong");: E3 n6 {# R' r# T# w  U4 s
5 S6 u% g( s9 t% Y1 h( m5 O
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。# g7 z4 v9 ^  Q  h2 t; p1 L

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
/ x7 ~, @% w/ i! r+ ]. H0 V9 |您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
! Y/ u; D  v- ]; i% T ...
# w2 ?9 [2 K/ Z9 ~  _: F
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
5 ?6 Y$ Y. P1 W( xhttp://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-3 06:29 , Processed in 0.044095 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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