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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 3 d) Z" F8 \4 G1 N
1 K; w) x" p; G
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的" [2 x$ o) ?$ d; ?& Q

9 M6 E  ?- S3 D+ p/ K4 T: I. o之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
6 h% G) _/ w3 C' `
* ~, T6 y- X4 N  @% O# I* c

本帖子中包含更多资源

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

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
% m6 O0 w8 Y( B$ Ylinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

4 q1 x& S5 _3 F我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:4 m2 ]; d. A! Q, z) U
#include <linux/module.h>! b$ V0 B5 t0 w4 Y$ w( j+ Q

' k/ W" d) z7 ^#include <linux/kernel.h>: t: }2 F& E' [( b' v& }
4 o2 T% U0 C2 X) _) A
#include <linux/types.h>$ J: @% z/ S; R8 H3 v. r/ g. k* U

( n/ i' E2 [# D#include <linux/gpio.h>
& R& F2 f0 q* ]7 S% x( T  K8 W: @1 e" ^- P  g  Q  ^
#include <linux/leds.h>: Y: @3 v- v* \! m9 t
+ ^, K4 ]. c$ c6 P7 z" `+ b
#include <linux/platform_device.h>" ?; D. S7 m/ L0 H

/ @- n4 q- Y  t4 x
+ j2 g& Z2 ~& c1 `& x  N' W/ n: h& ~
, H  d+ _8 y3 s6 `9 X. R' ^1 B/ h#include <asm/mach-types.h>
" O1 [' x" S: x' F: ^9 L$ U) A- m1 a9 ]. x
#include <asm/mach/arch.h>' J/ `' W* Z/ D9 T; g* E. [

2 u7 B9 D3 b) U: X  M2 [0 K#include <mach/da8xx.h>& e# E- i5 ?$ `3 g
5 Q5 p  H. q4 X/ T  z$ o  c
#include <mach/mux.h>! W; S" H% Q: o& r
4 N) q4 b1 l7 _
  K' a* h  E0 ]  L1 j
7 R+ N9 a1 p, z' V+ l4 h' Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 @% b* n3 F" X- q; `

* o" R( c' H) B# _; b. {, G, F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ l3 |( W* D6 J0 F; C* ], y+ m; v, K1 g! N' A; e$ {* O7 J7 o; a6 u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- B# F2 J/ r6 U0 Z* m* H9 I) Y3 \% Z8 T0 H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 y. e' b. e$ N8 y( X* b& l! W( r
2 R1 p' s! z+ H3 T! h; M
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)* j# j( d) Y+ A6 t$ t

% B2 l( w4 f2 e# _#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
, k( \7 c1 x$ S# u" |5 m8 u0 |/ Z% @, y( R: ^& }

, d* L2 m" X2 f4 k+ h  G! d0 A0 P/ o  J6 E/ p4 G
/* assign the tl som board LED-GPIOs*/8 x* j6 T# _$ z5 T
: r3 O) _" E' Y1 Q6 r
static const short da850_evm_tl_user_led_pins[] = {# ]0 D, {& C" ]* b+ S
$ U# n# k- T( s: K
        /* These pins are definition at <mach/mux.h> file */
; Q1 n/ t* _. f- X. V7 @+ [; I
1 Y5 P: t/ R+ t# m! c, h+ o4 p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,; T+ \4 q% u5 _+ L

0 L4 l0 E3 G2 A8 a6 h1 X4 J+ G% W        -1% g( }2 n4 |" ]" z5 Y& G

% x* _; p9 H  T) J; U};
% J; S  H0 X5 _5 i. G
8 X& b( j5 p+ A6 U  p6 }& t! B% B- c

) A+ L: B" i+ M& p* [. ?+ X8 r5 u& P/ fstatic struct gpio_led da850_evm_tl_leds[] = {
5 R' h8 z* P: k0 K& s7 h( w
9 m* _6 S* s$ Q# t- S. m5 Q        {
: J+ p; M" q. f' O% B" Y/ x8 t; V* A
                .active_low = 0,8 S% ^/ w# d' r6 z- p6 Y; F5 N. x

1 f; L( ]0 Q) L0 H/ ?8 f3 w. W                .gpio = DA850_USER_LED0,
3 p* R8 K) `# @
- e2 I# A+ D5 C9 T1 a3 Q6 C                .name = "user_led0",
" R  v  ]8 |  [# z: c  U; j1 ]. c5 p* ]% \3 \! i* Z) H% ~  ?
                .default_trigger = "default-on",0 Z9 g; B9 w8 j" v

/ S: l1 F. g2 k        },! _$ z* n9 E4 o
) r1 x& M  [+ h& x% L
        {2 R. [; A/ ]7 s, l
$ m# L0 z+ Z$ {/ {  o8 F
                .active_low = 0,  K0 _2 G: B7 t, n' \( h

9 M( I# [& X/ e; J: U7 T                .gpio = DA850_USER_LED1,
* O8 Z$ F/ B! a* _* ~0 e' a; n/ B( F" U/ D3 d
                .name = "user_led1",3 P; ^" i3 b0 d) \, \: A

2 b7 d7 @$ J  c9 Z/ t                .default_trigger = "default-on",
2 c, Z* I$ g4 o" c% |4 z6 ^. Y8 n: g( P: K$ m) d8 X/ l8 M
        },
5 [6 d  e# l6 `; W5 o( ]  Z; c! o- L
' L' q% q# g/ i# `        {
& ^) w# P5 a3 j9 p
$ ?  j* n" a& O. o                .active_low = 0,
  m6 b" h% ?" ^# P9 C; s* q5 Y: N7 l* r  k
                .gpio = DA850_USER_LED2,2 W& n3 p& q) Z7 z( v
6 l% v1 q; m: S0 B% ]/ U2 A
                .name = "user_led2",
4 h/ q' N# Q; M2 K& a5 f  Q4 U' u2 c- _& J
                .default_trigger = "default-on",% C0 p6 ~  G2 ]3 o# g& q- Z. |3 g5 o

9 P$ R. x/ Y/ p6 c9 ]) ^% H        },
6 x1 Z  k, W# o) T+ s8 c  J: E1 d5 |8 X- y
        {
: c4 j3 B: o# m9 }* m
3 g  x% T; k3 m2 N- Q% n7 X" N# G                .active_low = 0,2 o( u2 }. p  e. ]: ?

  L0 G7 g( S  @+ f                .gpio = DA850_USER_LED3,# b# {0 A* j, v+ H7 b, ^
$ O; {5 M' Q6 O$ J. q
                .name = "user_led3",
, `2 ?, Z+ j+ W8 g0 |- f# \6 I! L0 z/ s$ B! e5 r9 b
                .default_trigger = "default-on",/ s7 g9 }% \, K+ A# l" g& M$ q- h( L
# T3 N# x. ^; n5 d
        },
# w: P7 I/ p/ h% a, x
' ]/ I( ~3 B( e9 o! o0 W( t7 D        {( S; J2 y8 x! u$ I# f
7 c$ G. K. w0 }! Q4 I# Q
                .active_low = 0,; I4 k: Z. _' O8 E
7 S0 Q. P! b- b1 f# q3 s
                .gpio = DA850_USER_LED4,1 V4 p! P' ?/ S9 S
- R% @# P$ _' Q6 [. z/ `
                .name = "user_led4",% g) f4 Z2 V7 n8 o! b) `- x) l5 T
/ r& B8 Z/ ^& {) z$ X: |
                .default_trigger = "default-on",. `+ |: L! D/ H. ~( [" a" d* b$ O

' R7 V. e. W; }5 N        },0 K7 q  h9 A4 {3 m1 e" ]6 y" l

& c1 G; ?7 Q& P  Y        {
+ y' F( }- y) i8 B; {! U
7 C, K! }7 l5 J% {$ r, n% B                .active_low = 0,8 O! J- S7 ^2 E! ]* H% j

1 y1 k, N* a: l, W/ [5 d                .gpio = DA850_USER_LED5,6 U, q8 t+ l# O

: ?6 K5 e: X" u) k3 }                .name = "user_led5",' }. j, H. [0 e0 m7 v

0 t7 _  i% c1 O, H+ J# k5 k                .default_trigger = "default-on",
! P2 w2 l! t( E! q/ S' ^  Q: H1 \# H0 ~% c+ P- @% [
        },
5 k" F* z8 y9 M. S( l
) d7 @/ b2 Z' B$ A: x0 N$ n};: b: P& m# \, @' ?( ~
/ {' a& ~; i7 K  [
8 N3 h. b# V4 p6 s, T' C

+ j% S% k/ S4 D& g; }# Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! G" p! ^5 f, C7 |" Z' w& U5 j
% v3 [& M( T# m
        .leds = da850_evm_tl_leds,& R4 ]+ R6 {( y7 H

$ ]9 h6 j1 `  W1 |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  ~! q# g( T# ~
1 q' p: y* y6 X7 O/ T
};
& v; Z) x3 B7 D3 ?! b; I7 g4 ]  a2 h/ K& X2 P1 `8 q6 p
' o4 c8 i6 q1 _! \1 v% s% v
- Y! s8 |3 k9 c
static void led_dev_release(struct device *dev)
+ R* T$ q1 u8 c, Q( Y5 r& v
0 {5 v: ^* F% f0 W{
( U; z. c2 N  m# Q5 J4 q1 ], l3 k4 z( Y
};
/ Q: \& A7 c, r( p; Z9 i. `! \+ a9 \; a7 }1 D1 X- d+ f
7 R% p1 i1 q9 o

; u+ {+ u& Q# x5 G2 t& Lstatic struct platform_device da850_evm_tl_leds_device = {% U7 f! l( g$ P/ S5 V5 j
) J7 \* @, U+ c1 b- S
        .name                = "leds-gpio",
7 |. u" Q7 h. J$ D
! B' g7 }* h: e/ G% O0 S        .id                = 1,& Q! l. P9 L2 M% Y" r$ p3 X. s' [
& }' l; E+ M  H- r9 W4 X; C
        .dev = {
2 @4 K, F+ U+ @% e/ m' b6 h
; _* U) G# e" \. n% O5 S& \& N                .platform_data = &da850_evm_tl_leds_pdata,
8 @- f" ?5 v1 u0 O- o/ {4 H% t: f; N, c
                .release = led_dev_release,
+ ~# |6 ~; q" D
6 k# u7 A- e4 }% Q% }; V        }
! `5 I; y! @8 R8 h% j2 R/ x$ C8 ?8 O4 n, y3 L) ^( [* f
};/ J2 U6 _: @( z5 ~
( ^) u, K9 a7 j! ^+ @
5 J8 q% b9 a+ O  H0 E: p! o( H

$ y7 S4 R" z: C; V& v4 ]static int __init led_platform_init(void)
  `8 s* T0 W' Y* I0 V3 L! E- x$ s$ k6 z9 _% y& x
{6 `: `8 u4 s4 T0 r9 S

; S/ ]$ L' s$ W" X4 {3 Q        int ret;
' n1 D. }! D( Z, n! p8 ?8 ]* V
# C4 T6 S! T6 [#if 0. B2 U3 [' A, K/ z# ?4 U
9 b6 b0 f% r% C6 z- q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* [7 y) E* [$ Z, {; a

4 U2 q/ `: |0 K8 U. L        if (ret); m4 p" S4 ^3 G5 N( n2 w8 a# k1 l

, r" r+ T- ~' s/ r/ W# Z, i* t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 k5 l$ B$ L- [5 ^/ B! B% F/ L6 z9 h7 [! |2 h2 H
                                "%d\n", ret);' Y# {5 y) T3 F4 \! {  d3 p) i8 w

! k) n- J! R- A( t5 J9 y#endif! U) H3 K( o) b7 C: K9 e1 c
9 h7 T3 I4 C* {# H, J
        ret = platform_device_register(&da850_evm_tl_leds_device);: Z( ?# @" I/ L; u) R8 Y$ t! E; d
8 N4 P8 ]: Z1 E% ^; a9 D
        if (ret)
' |- t- i: n0 p
3 c. W" `7 y# ]8 A                pr_warning("Could not register som GPIO expander LEDS");! k: w# B% ?( k, l9 h

/ K5 I  |9 ?& i        else2 S0 G6 _6 c0 |( F! Y0 P. z9 _2 N

" f7 k0 D- @+ ]) N                printk(KERN_INFO "LED register sucessful!\n");
" I7 j1 q7 P. A: U9 u9 s
, ~/ z- o/ T6 I. p5 V3 h( F% h% U
8 G1 n/ f1 Y- @* ~9 Z9 A% u
        return ret;  a  o1 |( |( ~4 H+ @; V0 S
4 r: Y: X/ d: ^6 X
}9 B$ [, H$ p8 w& B

. e# H2 Z" O! _
# }/ V& S( i& [/ g# \1 p: L4 _' C! o+ T- p, c) k2 \9 ^* y$ M  ]* Y
static void __exit led_platform_exit(void)4 e6 a3 i% u, _/ I

, K3 K! g1 u. C, V$ L{- T8 v: E# D9 ^9 i0 ~$ N

( X+ l9 W9 o( T- ^        platform_device_unregister(&da850_evm_tl_leds_device);8 a0 Y6 H+ N$ |. h) D7 h( K& m9 }

. C2 K0 P0 j  w6 s- v3 Y( p# U  K, ~; h
+ d: }/ l$ z- u" z# V* A" J! e6 m
        printk(KERN_INFO "LED unregister!\n");
9 C  p# p- m  J. A3 I4 J) G, _8 t2 F+ v9 w) K
}% {, _, L; c5 Z: C& y
. ~: r& ?! W4 b
5 A! y2 d* P+ I- E( m0 e7 ]

* I# @! E: T+ }  Omodule_init(led_platform_init);5 C  a2 Q+ d$ V( w! `* e

' Y6 p% `  }+ R2 |* A' Omodule_exit(led_platform_exit);0 T4 i+ n: D/ j' }2 P

7 N- B/ s: R( N; o0 y9 H7 v/ W1 g+ n6 L2 A: |9 O
1 Q- }  p7 T3 F( H  k
MODULE_DESCRIPTION("Led platform driver");' r6 ^: }# U6 D! a& b( p
, R( `7 c+ }6 K: O% G+ ^# y' j
MODULE_AUTHOR("Tronlong");! d' X: r# q8 [4 V, P
$ W: o: A9 a/ o2 j. z/ S6 E% t
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。" R# k8 n. u# M; `5 M9 J3 x

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32+ r$ d* V8 a; A3 C1 C# F! n; R
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
. R, p9 O, `* U) H, j ...
: P7 E0 X) X# ?! q( N# b7 \/ }
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
+ X. l+ K$ e. X" R+ f9 v1 dhttp://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-6-16 19:22 , Processed in 0.043886 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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