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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
1 c% [3 L7 p9 Y3 p2 t& g9 U* G% j, ^" u% |8 t0 q2 s3 |. F! m# J: y
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
. b5 J2 i! v  D+ j$ r
# x1 c+ C. ~3 M! ~3 D' r. k% j; R* ?之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
" _# _3 ]- T$ e( M5 n) Q( `2 Y. Y  m6 V- i$ B# w8 B4 `4 c% m1 P

本帖子中包含更多资源

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

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
1 D( C7 o1 M1 ]3 b& m+ A+ b- Tlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

8 j6 |. S) p1 }4 y( Y我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:3 c/ j  w  x4 o0 L4 d
#include <linux/module.h>% d3 w6 |" Z8 p! H: A2 b

" D( J3 ]' Z( A0 T, |: y#include <linux/kernel.h>
2 q2 t& w4 ~5 \: p% u: Q* Y3 ^, I9 I
#include <linux/types.h>
$ E  R1 E$ z+ w. s6 a- z# U, T
7 ]8 a6 z+ Z$ l( ^#include <linux/gpio.h>
3 j. e' r4 A  _" r- [/ H) |( {0 O) t) O$ Q# Z# V0 w
#include <linux/leds.h>2 Y0 Z  u9 q5 s8 c; n/ ^5 Q7 Y) X6 |

( T, K$ ]! c' T2 \#include <linux/platform_device.h>5 v/ |7 k, @, K# L5 J* ]7 c
3 V5 e- Y2 M5 o0 y/ Z0 Z3 x% F
4 [1 u. ]& f( F( }5 k0 d3 n
3 x; P9 j3 a. m4 L
#include <asm/mach-types.h>: z5 r; {8 d# R4 G: s: e- V* a
( h+ n2 o: G+ c) Q4 k
#include <asm/mach/arch.h>- d8 d8 P6 ~' h7 h8 ^, H2 s* M
& i) `& W( s; ]
#include <mach/da8xx.h>
+ `* p+ F* y' K+ d0 m, i- r
% X# v0 j5 [4 _( r1 l3 [% ]#include <mach/mux.h>
4 M& y2 q6 }6 ]7 N* I2 }) S2 [( R7 D: M3 M
- c; W! v3 O9 U

! {+ n1 p7 H  k6 }& c# l4 a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 h4 T/ `8 e- `" E- o( b( {

) N& O# z" c; Z# O& f* o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ F3 ^: P  i" |' }5 t8 T. C/ _6 Q. t& |% z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 O: l  z; v' g1 ~) v! B& K7 ^$ J
6 B! a" V. `9 E5 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), J3 Z/ b- Y, ]. r7 p9 \) Z

) J; H  A0 \1 I5 u! f% l#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
; y1 s' T+ A/ |2 T+ O0 y) g0 u, c, m
+ p3 c3 \! ]& V  K#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
2 m% [& |8 t- M7 e" d  d1 \) j4 X$ U1 i. N
" z( J2 _  ^- p! o; F' s  q/ Z% {) ]
: G% D# B/ X0 @5 l
/* assign the tl som board LED-GPIOs*/
2 a8 z! l, W9 }
0 E% \0 d; r. v8 kstatic const short da850_evm_tl_user_led_pins[] = {" C" A: h# i) x$ Z8 j' I" @' {5 V6 Q

7 R& Y2 o% G) z0 ^) {3 v; h: A        /* These pins are definition at <mach/mux.h> file */
) I/ G7 B% q  w# `8 d, k, @& V3 d8 @* S( S. p( u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,% {" [+ W( t% v5 o& N4 S' w9 ?

5 P+ u+ ^2 x( H3 I, B1 E7 R        -1# Z7 S: a/ Q& s: n! F* x4 D
* Z% o0 T; i4 Z0 k1 I
};
6 e# T+ e4 b" W4 L, ^* p# s6 Y+ b- [( O+ s4 a
. N, t8 J' S/ r" N* i7 _

: a  Y9 [  \& r& G, W  i( ostatic struct gpio_led da850_evm_tl_leds[] = {3 ?3 _% Z) x8 S- l7 O

5 `4 I$ L: }3 _        {
6 q& h2 }8 b2 o5 P! E* l  J, e
4 F6 m2 G& w* q4 @4 J3 O$ ?                .active_low = 0,' O1 B! W% S; u4 [0 i2 Q

! i9 m; S! {$ G% ~                .gpio = DA850_USER_LED0,) J# S6 N7 {$ s! k. s% o
* E; g7 d8 }/ i$ J1 \
                .name = "user_led0",
2 u0 P& w" O* @$ _1 u
0 U( F6 M7 b2 v; H                .default_trigger = "default-on",
$ J" h) S  T1 O, G- I, U4 C1 P: t$ P; K  X, X
        },8 N% J# e) P, `0 s+ j
5 k8 w4 k6 r2 l4 }# h4 _3 E1 U5 e" Y
        {9 S9 f1 m  D' B' [; n

" i1 o: ^$ A- V" I$ t/ v+ i; L                .active_low = 0,/ E+ X$ ^& h# s. ]; ~

$ v% m( Q5 X7 s8 x, V) b                .gpio = DA850_USER_LED1,
4 m& x3 T& n' V. a- e  |
' q) t) ~# @! Z& U5 m( T% N3 P2 R                .name = "user_led1",
. n+ m4 V  ?1 v$ i+ M. A, [8 `& y4 S  a* ?5 b
                .default_trigger = "default-on",9 \$ o; Z* i3 F* W7 d

% [( t5 E9 l0 Z' v& q) C0 G        },; i) f2 `4 Z! {3 c) A. m+ K

0 V- C) G  f9 V, R        {
) b. `- G$ W1 F% i* [
7 R$ ^6 d) I" s$ I( s2 B6 {  R                .active_low = 0,
9 r1 W( N2 }" W# x
- q& K  G) d% T6 Z* g* c                .gpio = DA850_USER_LED2,* p0 m; O' m6 `/ E8 \1 c5 T

1 T# N! U% j: ]                .name = "user_led2",
; J$ a: x  j2 f. ~5 Y2 X# t# A; e& E" P& o, D# Q$ A
                .default_trigger = "default-on",) d% r) [7 U- `# g
' s4 Q: C6 B' C' I
        },
8 O* p. h7 p; s% P# p, s6 O6 y$ G5 K  k1 v
        {5 l, ]! j% H$ S6 i# b) n8 A7 E! m
& Z, }- A6 l1 m6 Z
                .active_low = 0,1 X* b# N8 Q  G+ V2 u  V
6 r( H) ^# g( t/ g# D
                .gpio = DA850_USER_LED3,* g& U# [# Z* {% y

8 {5 g* @& _* V$ F0 m/ e                .name = "user_led3",, f, u% d5 Z; h7 @6 E

; y. n  W6 ~- ^9 _+ n                .default_trigger = "default-on",
$ R2 o" x+ x% C# ]3 q
! {8 h* j! d2 d& O- d# i, K        },/ @( a1 B* A8 H
1 h+ h7 K! f! P1 b3 m
        {* \# r2 r$ }  L' k8 T6 Z1 C+ M% j( W
8 m+ D) n4 c! Q$ _9 `$ {2 l% w
                .active_low = 0,# B% [4 j/ d: z' u. q

7 Y/ z0 P! U& R                .gpio = DA850_USER_LED4,: T+ A$ H/ ]* @6 D- x6 [/ l3 Q
! o  C; d! [- _( [
                .name = "user_led4",9 z% d" Q* M( K. X( W
# y; I& T0 K7 _0 U
                .default_trigger = "default-on",
' [/ C9 ]# m: K! s. h. o# j* G6 `6 s5 V
        },: J" K( j' t  v- w. t1 ^

) |$ c3 R* `1 J% ?  ^0 c% u* z! |4 N        {
  N% m8 R0 C; {: z+ ~- b
5 g& J8 B8 w; g! u                .active_low = 0,
: l9 C) I# W- }5 i9 d% v# l- c0 C& ^# I# R1 k
                .gpio = DA850_USER_LED5,. S* N3 E! U$ _& k0 e
/ T$ G/ l" m. L; W: L6 k
                .name = "user_led5",0 Q4 d8 Y5 A. J( l! o+ _( W

6 Z, C' R# ?/ t1 B) f                .default_trigger = "default-on",. f* u9 |  U; a/ H
8 j+ k* c: t" Z3 E/ k/ J+ A5 H
        },5 f7 }: K8 h6 z# R( E  J6 [' y- J
4 }; \7 g( K# s* w3 V. a
};
4 j/ ?8 Z% ~6 ^! L2 k  ?, [( K
! u: J: _0 z2 j+ H
9 d- b; w0 R. F/ J- x0 ?, Z
8 B' A9 N4 m" m% f) Dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! C0 p) w+ `/ w+ C' F
+ u# H4 }5 x' Y( Y3 Z5 q
        .leds = da850_evm_tl_leds,# Y9 ^, S6 n8 W
' b% W( s- n  G& H# b) t+ S" a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 I6 ?' X1 W0 g% C. ^% ?

* ]$ O, ?, V, \  \- r* r};1 w% a3 q9 `* d+ U, E6 }; k0 k

8 b% X( w0 o  O1 e
# |7 A! U  }4 Z, }
; v9 c/ V3 n9 p  q) O# C0 Wstatic void led_dev_release(struct device *dev)0 r, H7 q4 V) d- \. K9 e: A3 [' |
6 \6 d- f5 l# {: O/ I% N' E
{
& |3 Y8 D& a& m6 R0 r) y0 Y, Q9 j# D$ L' H/ X( a9 e' y
};
7 v. M1 x- G' ^6 x6 D
0 P( {$ @: ~1 g
( r3 S0 U) ]# N0 T; Y4 e9 `
* n, ]2 ?1 h5 [& _: kstatic struct platform_device da850_evm_tl_leds_device = {" h& p" N' I+ l2 }" i' A) f/ ~

8 H4 T" {5 [! o% [        .name                = "leds-gpio",( J9 u2 T: R8 S6 ]; {4 w+ x

6 z1 w  f3 b/ P. u& L        .id                = 1,( j/ L( r- W' Z
7 d- P. S4 g. S) f# w- Y
        .dev = {: ?' G+ O6 K0 n

# X- f! R( x0 X8 r8 z* `& d                .platform_data = &da850_evm_tl_leds_pdata,/ P& Y# s. D+ M) r+ u: E' o

* z& A) P, I; Y; L                .release = led_dev_release,
8 x- W+ u% f( T- a6 r
# K; a- O( t2 g8 D5 S  \4 `        }4 O9 S& ?% t( @4 \  v; E
, T4 f/ R! e8 ]0 o* l9 }2 L
};
* w0 O2 M! I4 j/ g7 I
# E; d" j2 g6 f5 [2 `' G9 U( \9 |$ P3 c& d

  Q6 d0 S- A2 z  }static int __init led_platform_init(void)( y! C6 T6 p1 n
) `$ n: Y+ q* s) l' Z7 d
{
! l9 j3 _  U1 l" r- z9 W) c* O
2 o8 e1 m2 D! y; a3 T: K        int ret;
# W% a; Y' m/ F
/ w0 [- x2 d' t' |/ Z2 `#if 0" ]5 t" g% h; F

" }4 Z6 C' d( q# |$ ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ s: X# Y6 w7 b+ u- w" L+ G  F% N
, \0 ^9 L- A- a% D1 k0 y- N1 Z1 ~
        if (ret)
: ^3 Q# C$ \9 h2 U6 J, ^3 ]$ I8 F% k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 V, d% \, y! U8 H! x: [6 O* S# z

& x* @6 L* P1 {7 t                                "%d\n", ret);  L7 @9 |. X8 ?5 G3 e
5 Z# r3 l( p1 I4 _
#endif/ ?! W( I1 H! \- D) j

* {( J* q6 i% ]8 L" E2 v; ?$ K! B: K' o        ret = platform_device_register(&da850_evm_tl_leds_device);8 i! n/ V2 a5 k$ H$ E

- E& X9 ?; \$ h* h& b5 \8 P/ D        if (ret)2 ]) E1 s7 O- ~2 P9 J( P
( ?" w' h0 S$ f8 C9 z
                pr_warning("Could not register som GPIO expander LEDS");
  f: i/ D3 O  l, x: e6 f  d; M1 w) ~2 Y: X. R* [
        else7 X" c0 Y9 p& c2 N6 ~3 L1 L

5 `! }- N; z& A3 W( w                printk(KERN_INFO "LED register sucessful!\n");! ?3 Q) H+ }9 p
1 _% ~+ h0 u# [4 X2 I# v5 L
' l" Z' Z1 \+ H
$ g# k! H7 p0 R, e! y
        return ret;
1 x* S- Q- Y1 t1 |5 z3 g7 @9 n" l* t$ {" E1 D) |
}  Y1 }6 n0 g8 }8 @

0 H# L5 m. J1 S6 }5 O/ _
6 _/ R4 f4 B( @6 M. i
3 K7 \5 p4 E: Kstatic void __exit led_platform_exit(void)9 u8 j8 ]7 A$ @

: V+ v/ ^) ~6 i# ^' D{
- |( \; h8 I) R' |+ X) [. t' @
' U; Z1 C( n  U3 b% t8 d        platform_device_unregister(&da850_evm_tl_leds_device);
4 U- ?+ W5 I$ o1 j" r7 {7 s4 R9 f0 {
, z$ k9 l6 ?6 e. O
, a* `$ |- V* P. o' f7 F, v+ \) D, u- D+ }
        printk(KERN_INFO "LED unregister!\n");
' \0 w- k1 H" f! H4 u' l( E+ H3 R0 x% i% M' W+ [1 S& A9 e
}
+ y0 B/ f  i5 a# S+ f0 a, a/ X+ |/ P9 {' F) x3 U& P
: x4 h. K, u% V$ O3 {

4 b" ?7 N" V2 M( f+ g9 {  Nmodule_init(led_platform_init);( B  x, j$ b" x. A
# v1 x1 E7 ]) b1 Y7 Q7 v7 h  G
module_exit(led_platform_exit);
- H; H6 m: V# m0 \. a' A8 a- ?, ~

0 S' K" D3 g/ P1 l3 _4 n# j( ^3 ^( W1 [3 h: m: d: b
MODULE_DESCRIPTION("Led platform driver");. G/ R. D* s# M) h

) n% Y: `: r8 ^  R4 g6 c* l* KMODULE_AUTHOR("Tronlong");$ }5 Y& ]" N) b, [! j

" r7 B6 S% A9 qMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
( @5 o$ a: S. C, y4 H  R/ o3 [

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
+ T1 I) J8 h1 ]% x0 Y0 o您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。9 D+ h+ ]$ i' G
...
+ b! t( A2 h) ]+ i, l* Q3 N
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
/ W( k0 ^: n  @: R5 U; s; u9 U! Hhttp://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-9-16 11:39 , Processed in 0.046207 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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