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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 1 [" D: L  w- a* A
1 L! z1 h7 h- ^. E, j& `8 ^5 a* K
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
, k" L; e+ J5 W! v. F( t: b6 U$ r' ~2 ~4 R: O, j' ~
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?" o5 ]4 T2 u" l* w6 r. J" ~( N

! k1 C$ ]1 Z+ l1 g/ Q1 [

本帖子中包含更多资源

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

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
- r! n+ l6 C' [9 l6 [linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

. ~! n" J) Z0 u. `$ g我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:, V4 B3 Z3 E: t4 Y5 P
#include <linux/module.h>
/ `6 }. m0 C9 O. ~6 N3 h3 V0 t6 n+ R, \
#include <linux/kernel.h>% d! W1 x8 |1 J& ?" c- [% z
' c, \5 S, p, f, }4 [# q, v
#include <linux/types.h>6 m  C) }' X( n  D
9 Z6 q. E/ o0 n! [+ n2 }3 ?' @
#include <linux/gpio.h>
2 p# _' P: w) R+ f: a6 ~' z8 K) z9 b6 \$ \! x7 x% g
#include <linux/leds.h>
$ w+ E$ @$ y' H9 j# p4 K3 |; g
6 i1 e& u5 G$ {8 H#include <linux/platform_device.h>' d5 [, H2 o1 w, B' B; ~/ j

2 y, f& A# t: c" e( e
/ D; _0 M4 T; ~  r6 x; n" B( t. F0 F$ i
#include <asm/mach-types.h>
4 `$ ~2 o. l% D: n' X: ~
  h+ d+ m- }9 w! H; Y0 ~& [#include <asm/mach/arch.h>
# w) r+ Z5 \2 x- u( R5 f. Y$ Y+ \  s3 N) V/ T9 Y
#include <mach/da8xx.h>9 g4 i3 x6 j0 Z) g% Y  ~

9 r7 e) k, b( y#include <mach/mux.h>
2 A0 @/ q( P  q5 e; Y5 O/ Y3 b) D& r! P: I- g) e

, {' d5 V7 U- S7 F# N) y
' B& ~  {% R2 B0 ?% ]+ d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 n$ K3 \% M$ e. U/ R

5 y# d2 G! O* q0 m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 C1 f% l5 X9 D& I
4 T. e) r8 e9 q3 s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  t' D6 n+ B& I' _: i$ G! e

; E6 ~: J5 g; q: ^9 |6 o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, m& D6 N" @9 ~2 G4 V$ D4 G6 U! _. q/ t5 [( |) h
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)* a4 x7 S" {; v

. N& H# ?  k" H#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
4 U& i* |3 X, n: g2 u! Y, a5 F& ?/ X$ ?% D6 X
' P1 o0 Q# E+ G

2 ?% [1 I+ X' I/* assign the tl som board LED-GPIOs*/
% _4 `. J  A: ?, V8 H# [( |  u- G2 q
, s2 g" M' H8 T  _1 e- vstatic const short da850_evm_tl_user_led_pins[] = {
( o7 n& K- f" z0 W3 z) ]( r
" h& l) F5 ?9 G  r' @! d# [        /* These pins are definition at <mach/mux.h> file */
; P5 u* \1 U4 `+ |9 z) s# [  r9 w7 Z; O1 l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,  E& x$ `0 q+ Q8 Q
1 G5 R0 ?7 F; b/ M* x; Q4 ?
        -1
; f5 E" E, k: J+ \6 J2 t
5 z4 L$ k8 Y7 ?1 Q, A};& T- O. r5 }: z, l% O

0 r# i$ d6 r, G5 E$ t8 s6 ]/ M. w/ s, V6 s4 X0 z& v

; G# `  Q( V) e5 K8 M9 a  ystatic struct gpio_led da850_evm_tl_leds[] = {5 ~( \% ^" G" l  z. b
) F! c6 s; P" y) U; V
        {
6 X3 ^4 R5 p( F) \5 s2 P
$ W6 {* `! `5 T8 h. Y% I                .active_low = 0,
  Q, Q7 ~3 }6 _9 F( `: h5 i
( c' N7 p. E: I% w9 l( W                .gpio = DA850_USER_LED0,; l6 Y  ^8 D0 S1 K3 r

: S# n3 @' b5 s+ J                .name = "user_led0",5 T  o2 O9 _: i! Q' }- @
/ W, {4 X( E/ K
                .default_trigger = "default-on",
3 Q: i6 b% o9 v/ R: @5 l5 H% x7 I5 h1 ?4 a
        },& P; X" d% c5 d: w

# v7 U8 Z- O* q* A* h        {
, C/ f  N) G5 n" L+ E" ~
0 o) z4 G5 i: d5 k                .active_low = 0,
) H2 O- Q5 W, d3 l3 ]  n: \
  Q  ]5 t5 [/ y3 s) Y                .gpio = DA850_USER_LED1,
: l1 Y; w, A# g( r. o9 @' e' ]$ B! ]2 a
                .name = "user_led1",
. r+ O- O; h% N( V6 k- d/ o
, t/ I; P8 c  C) o! q                .default_trigger = "default-on",
' J; O" C+ I9 w3 Q' Y% r: E  m4 F$ T2 @7 p, d, k+ G1 K
        },
! h! l2 {7 `( d8 w
/ L* T8 g8 Q# {- R% F5 _- e        {
8 O+ j# M8 E6 `+ p- G+ y
( a$ d! }6 U& K- s+ v( C/ q0 y, {                .active_low = 0,
5 h& n! D: i2 t7 C
, F* Z% @1 Z% c9 B# C) x                .gpio = DA850_USER_LED2,! r8 a( |% N) |9 t3 J- {; x

2 R; r. o: w9 Y+ w9 \                .name = "user_led2",
! }8 A* }+ P. P8 H
" o( k, ]2 n" `* u6 n2 b                .default_trigger = "default-on",$ ~$ A2 U# ^4 @1 ]) c9 b
" J) V2 x2 V0 M
        },9 M+ N6 S0 M/ m" j1 p( k0 I

6 I0 ]" K) R! e7 Z2 k* |        {
4 i- {4 v1 C7 [/ i1 w0 j6 o, f0 T) A% Q4 C. M( Q& ]' T( l( F
                .active_low = 0,
! K( e0 ?& E& E, h( g1 Q4 Y/ a/ E/ M
                .gpio = DA850_USER_LED3,! {$ D8 L+ B' `, I) U0 L, J) z2 V

8 j9 g' f& l% o7 }                .name = "user_led3",( w0 O' h1 @2 q, Y2 C6 `! w

# q% ?# E$ J( H2 C! x                .default_trigger = "default-on",
' y. \& M3 k, n$ e+ n
( D4 j& G) o* q% U# b6 n9 g        },
5 _' W1 V; ?, T& g- U2 {' w# {; C9 w$ e, e% g
        {0 u) g  r( V4 b

2 I* u* i3 a; b" {5 g& W6 |0 d                .active_low = 0,
; Q% d2 |* o. ?( m* |$ Y' Z' Z% ^( t
                .gpio = DA850_USER_LED4,
, y9 a5 i& i$ ~# g" x. b+ s. R3 T5 x% t
                .name = "user_led4",9 \9 F  M  t) @: s9 R* S: t

0 `: \1 r* P' a% ^                .default_trigger = "default-on",
: O1 z) ]) \  T2 S3 r! H& J& @
6 x+ V7 r9 l/ N8 [- S; a        },
& D: i% i/ w% u1 u5 t+ x, ]2 @0 ~. C- @0 h  B
        {
- t6 z. Q6 l# n* c# \9 b  i" `% _: L4 w8 v& y; S, |" X8 g& U2 T1 P, i
                .active_low = 0,9 c* T4 P& B# ^$ l1 R0 t$ ?

- t5 e( z6 d0 i* B& t! g, x/ W* C2 [/ y                .gpio = DA850_USER_LED5,
( x; z7 q* o1 E- z
5 f6 T, O% w9 @: S                .name = "user_led5",$ d7 I+ E6 x8 D6 K

1 V+ S! k' ~" Y+ c% \, A                .default_trigger = "default-on",2 l  Y# _9 Z+ f5 U

: {) c1 M# @4 j# h1 d        },! K; X, g% \' i# G
4 [2 m3 m7 d5 {5 {7 E5 T3 `& H
};. Q5 E, K* t$ U, @, Z
: d5 }7 N, q$ o6 r' a
( C2 E5 K( |: d, [; y3 X) G* C

9 }0 c) \* b) ~/ g5 estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 k7 s) V' \- J4 A5 \
9 v8 h' g* m3 Y1 e* R( `
        .leds = da850_evm_tl_leds,
, O( z( ], l: Y+ c& |! a: t$ ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' X5 O( Y: d* h& }6 n# I

2 P. X) q6 V" Q; Z7 i* [};& [8 V; V) E) V0 y! r

- J6 {9 m/ Y: r: a7 {, l- }+ p6 {. d. X1 r) m$ m

9 l& p2 H- [# d" |6 m2 Pstatic void led_dev_release(struct device *dev)
, U6 o8 t* p) J$ Z' c. T0 q7 L. s( ^  c& R( B
{* v6 M# |! A% v; K
2 C) I3 h/ }0 A
};
1 G* c) f5 U( W2 M) t0 [* q7 k
6 |4 @" h, ~$ X* U- G9 I* F7 r' ~7 R  m: ~) q- h; B  m0 K
  G3 |  n/ t  n  U& Y# u: O
static struct platform_device da850_evm_tl_leds_device = {* a1 y( B. K3 S9 h; g

( O3 {0 y; Q* G$ i- z; O        .name                = "leds-gpio",
$ R+ M1 r3 q& H; T- a! @  O
' B  ]0 u3 ~# ?0 p        .id                = 1,2 v1 `  @/ N5 Y. G* N, F

8 ^* a1 ^# L# R/ t$ d4 R6 D; X4 I2 J        .dev = {0 P2 S" G# Y0 G$ W0 r9 A/ u' p
% y) [/ c' m7 N! m! f% V" P/ F
                .platform_data = &da850_evm_tl_leds_pdata,
- u. F+ _, g# F' \3 q  W; P% D( x' z2 c
                .release = led_dev_release,
. \( n5 u; R$ h0 {- a$ ?  i
# B/ q1 c- f. K3 K+ G' a        }; G# ~" }/ b! E8 u4 b- ^
. E3 W3 |+ y8 ^9 K
};! ?7 H% n! z( W9 w0 A4 X& U
1 f" [3 z1 l4 ~( f
; s1 {! m. j8 d4 X4 _

. Q  d4 z% k$ k7 ~6 bstatic int __init led_platform_init(void)
7 I" R& j# _* d2 N7 i3 P
; w2 x* l+ X7 f6 V& o1 U' m( o{
; z% g4 E! R0 N! |
$ X. h$ a! G( P        int ret;
* N5 x* [; x. b% ?# E( W% R: m( q" U  G  ^: T
#if 0
4 g+ {4 c; G2 m. P8 @0 a4 Z
- E& W9 U% [# y( H. G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ ]# w* E% [2 y0 c: R' l' U! a

, ^7 v8 ?6 q  c$ z        if (ret)! ~; C6 Q5 `: p0 o; i
# {$ F# G2 _7 U# m& u! s) O! ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& U) x1 U  F4 V5 m- v2 V$ u

' w9 V5 v% p* |2 i& N/ E! y                                "%d\n", ret);
- e) t& K' r+ `) x9 c: D7 P$ |: h$ W. l
#endif, o" o# _$ M5 z0 F, z& w

" P0 D/ f* }: o, ?. H) D) f" n6 o        ret = platform_device_register(&da850_evm_tl_leds_device);8 k; i9 t5 |  I% E( ]
) f$ A9 R" A: h6 d- O
        if (ret)
+ q1 ?$ h5 U( `" i! z4 K+ B) _7 c
5 \) u0 N9 H% `& q% x) F& A                pr_warning("Could not register som GPIO expander LEDS");
" q3 D* z! \/ T0 N9 F7 c' b
. q8 E" y( W+ h' S* {        else
2 u9 `4 x" X' [& ~$ ?$ P! i# o3 O5 ~1 H8 t
                printk(KERN_INFO "LED register sucessful!\n");* t: t; r, u0 B

7 b, l! a' ]$ M( z. s0 _4 }6 I: L* T$ I4 `1 n; F1 K% X

! _5 I5 f7 {5 P) g; t  P        return ret;
' Q2 N1 C" m, _& L, n
- [0 z: S6 X5 a}, `( F0 _. ]& c9 [

- _. u% H7 A. L' n
' A9 H, b% |# f, C7 V) |. a6 l8 c% b
; I) E$ U( ^( X7 i% M: B4 e1 `4 r+ Sstatic void __exit led_platform_exit(void)$ r5 l6 \6 p% P5 T! U
$ C+ }) b- h/ W: R
{
" z1 z+ Y; W  Z6 T
; ^! @, L0 [2 ?& l* e' d0 N1 h        platform_device_unregister(&da850_evm_tl_leds_device);: Y8 t/ Z2 P$ J5 J- K% j0 j* C

2 Z+ g0 g  T8 C: q% }! K+ I; E- f) N+ s

4 y+ O7 P5 m, F4 d) H9 Y        printk(KERN_INFO "LED unregister!\n");
2 \' A, M7 q  t2 U+ `
4 L3 |- S+ v! D+ z, E  B0 ^}. w  r8 y, B0 u& g* A. l/ \  r3 t
6 Y( |; I' S: ~3 Q
5 i; ?; f8 o: ]- J) |( s4 Z7 @

/ M9 H- N: S. |! }' {module_init(led_platform_init);7 X! l/ I( Y/ ^# m. C
3 q, I. [8 `+ X0 _$ t/ q: x/ k
module_exit(led_platform_exit);+ I2 S# u3 z3 O( h' L1 N5 \+ R

, r8 h, S% c! K. X$ K: O% V) K
8 F5 F: ^, O" H, \
) \( t0 Y9 A1 V6 RMODULE_DESCRIPTION("Led platform driver");
' d9 h. J& [  Z2 e  E
4 ]* K& T  K7 b' vMODULE_AUTHOR("Tronlong");
) t$ l$ X  C! y
' L" j6 h- J4 L0 p5 C. fMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。; P/ w' y; T5 Q- N* ~7 E

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32- p! V* _# {3 B* o
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
! Q" K. [  H3 E- {+ i$ w ...

: b/ Y. e! d3 C# E% J- i2 D好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
% C( J$ K# z9 ]4 ]( X) mhttp://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-7-2 14:21 , Processed in 0.043489 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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