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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
% ~' [: s$ t& G* A1 y7 S! I# _( {  R7 u. P) `* \
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
( Y( {2 u! n0 O9 C* A
5 U+ f/ r7 O+ O之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
, e: y+ O3 x4 D
5 }$ d8 O" _5 X8 r/ n$ w9 K6 {

本帖子中包含更多资源

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

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# R2 o2 H! t$ p9 U7 R
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
( N3 e9 F0 L$ m# q
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:# L. J0 f5 V5 S3 \
#include <linux/module.h>
9 h; F2 w" h$ d' ~  A& p9 `! d$ g9 l: @1 K0 P0 t
#include <linux/kernel.h>3 G! P: @9 @, A$ w  a' n! r

( Z2 j4 P2 Q; V" D* U: {8 o#include <linux/types.h>. k' m" ]' \" I/ d5 _$ K

7 |2 A$ Y' m& c$ ~% V0 u/ n0 }#include <linux/gpio.h>; y8 z, H; a1 ~" D/ \
1 i1 p* s/ b' a5 t! F& P9 w+ d
#include <linux/leds.h>% C% X+ p; H5 l

' ~) G! r- Q3 T#include <linux/platform_device.h># x) q1 q: i' x9 D9 Y$ |

: X. h& F& G+ d/ Y$ l1 e
- ?6 H: @# Q8 H  P# F& C. g
  Y$ `2 D* H# \/ [4 F! d* O- X#include <asm/mach-types.h>
; P  ?" |: \2 I! R& u& h, ?9 B3 q& e7 ~
#include <asm/mach/arch.h>
) L, a7 U3 r1 i8 {. ]8 |: C; }7 n) f& V! j' R- k  r0 z% m0 @
#include <mach/da8xx.h>3 k# w( v8 f7 g/ {4 x7 n

+ d. C2 g% D3 p1 O: ~' {0 S1 X#include <mach/mux.h>
8 F# i3 G- W3 \  D1 `
# u  L2 t* L5 n" }8 A# b
% i. d% [" l* H( X! S
% w$ t/ |) w0 q: Z& [% ]5 u! u' N0 g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' _+ P; H: ^, v; L

0 f3 [- S! v- ~( r$ J9 b( @* P1 S0 m3 w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' b. J0 `' c) g' ^0 L/ X0 C4 P$ n: Y# W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 {7 g8 A. k" l3 A( o
* Q4 J7 k( O9 G" i# m/ P#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( ]; X. ?/ P3 e) p" b9 A' X) ^$ Q8 p6 x3 _
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)& f. V' N, u4 Z

2 d" J  q$ l$ t' l0 L#define DA850_USER_LED5 GPIO_TO_PIN(6,13)6 v. t( ~. I5 |7 j- W! f
5 t% j8 K- v% |6 j

/ q6 c- m, a6 ~) ^# W) I- t8 g" u8 u- _& M, @  `
/* assign the tl som board LED-GPIOs*/
7 u) }: m8 V9 u& e' ]0 B* E# Y( L' C6 i( h7 M% s
static const short da850_evm_tl_user_led_pins[] = {- a, [& T) n' P, l1 V  G$ k1 w

" N  h; y5 j  y4 _2 A        /* These pins are definition at <mach/mux.h> file */; u+ n0 ~# E  t1 h9 b6 v$ w
9 v* o, |8 H4 `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,, j% W0 j0 C1 m

; k8 g0 j6 L5 a7 M        -12 d# g; D4 t4 I- F

! w) w# J* T! j2 E; ^( @: ~$ y; X};3 x; p3 h, L" |1 L4 N8 S
0 K. D# i0 C3 _2 [# l/ \$ }2 J5 u

, z2 K* P+ m, _) T  X  A, u& h; C% B# c+ L
static struct gpio_led da850_evm_tl_leds[] = {# `2 m' I  `# i3 F; }3 t
$ ^- \: a- y4 E/ `2 p- F
        {
/ v) e% {  ~1 w$ h
  T' u/ L' D, @7 X1 E& k                .active_low = 0,
. A' d- o2 c" z0 P6 O( o4 n3 ^7 a! e2 G+ }) W" _
                .gpio = DA850_USER_LED0,# P' L9 X1 z  {/ Q8 L! O! i

9 ~: {" \8 R' I7 f% W                .name = "user_led0",* l# a2 d+ x% P# _5 h) U; u  k
- Q1 a) d8 x2 [$ ^' d0 Z
                .default_trigger = "default-on",
# q: a9 c5 w. g7 h% O( I! X9 [* l
, d8 I: `, C( l$ Y# i8 q4 [        },
  H$ b1 W$ L& _& \2 ~& t: i. V1 d3 E# N' r/ \8 {: h' a8 c2 |
        {, y( W' j) k5 ]! C. r
  |2 [/ J) X. z  ^+ F( E) L% t
                .active_low = 0,+ C; m0 h- @/ F4 P( l7 ?
: W( B4 p1 }# {9 F* q1 K( ?
                .gpio = DA850_USER_LED1,
2 H( _( H4 F3 Z  w6 h
0 Q! N% i4 p; F7 u                .name = "user_led1",
  W' V6 }, Y$ q6 d5 i
! [7 E# q* A/ a% ]                .default_trigger = "default-on",, d7 c. f9 q$ l
3 j0 [( X7 N2 F% L
        },
, X: r/ j$ C; E9 z$ e, k, E! f7 }, M: g
        {/ R" @' b  L" I( `+ q/ F- W

' i; b, B- A. d1 |' O7 q                .active_low = 0,7 o- q; I) x' U. Z0 U5 N

. H7 Q, u9 y* y: o5 `                .gpio = DA850_USER_LED2,
1 F% D- D2 y' H
# Z0 ?! o* ]4 n3 b2 C' [8 w                .name = "user_led2",/ c4 J& d$ E" _% |2 u0 m- o
* [# H  v' C  v$ o( g' Y5 n; A
                .default_trigger = "default-on",
5 R7 a! O  x9 @6 L) @  F$ e5 }- @1 r& q  i( |
        },
0 d3 w+ D7 s  e" q. @8 C* _$ `/ V% ]( E0 [- ]% W
        {5 b6 ]$ ]: W1 U1 i  P
+ w( l9 v/ }! d0 R* T
                .active_low = 0,
. [+ e8 B, h9 P) @0 ^; N0 ]
) h3 @- ~$ K* G0 U! t8 d                .gpio = DA850_USER_LED3,
6 v6 @" j5 O9 Q* }' Q- V) d9 s% t/ p/ m5 ?/ ~1 T, m0 |3 J& I, `2 p
                .name = "user_led3",
* r! Y1 e4 n& x1 M  c9 R. f" Z  f3 S6 I) r2 ^$ E$ _" ?
                .default_trigger = "default-on",
9 n4 c8 h- t9 l% ~
/ P8 C6 q: P& j        },$ [+ Q( l% p, y* }

7 V! Y6 X) Y1 M* y: J        {0 f, G6 Z9 v& G& g
1 u0 q; @% K9 J, S9 R* R
                .active_low = 0,
1 ^& q# o$ \. N; h' C
+ n0 R* E0 v* d6 B0 d& C# @- s0 a                .gpio = DA850_USER_LED4," s. ~+ B6 `4 V4 N
+ |9 f! u2 q& y( W, T! l0 _. k; w
                .name = "user_led4",3 D1 l5 d1 `' c. ?
5 K; D8 s# ?) p8 j# ~
                .default_trigger = "default-on",9 G2 y: u4 p5 r! d' U) u5 X# s1 Q3 p
4 n. j$ D- Y# g0 @9 Z$ Y* l4 m
        },4 [3 L# Z- X  q  a6 d8 I. Z
! W* Y$ ~+ |5 T+ [7 p
        {- Y4 d- ]  s- G% v8 x, p; b

" A/ m* c# [; F. s% d# c                .active_low = 0,: n5 C; l" M% z* T9 @

3 F- i( Z/ Y/ a: k5 J# i2 J                .gpio = DA850_USER_LED5,
$ x' B% c7 w: \! i6 B6 R. U! B6 S8 L/ K+ J9 e0 T# d! a
                .name = "user_led5",
; ^9 L' D" W4 V( p& ~2 @
7 {! I$ h$ M) q" B                .default_trigger = "default-on",  i& u, V" v  b$ h& N
9 f, P: ~6 f3 e+ u: I$ y
        },! J+ _2 {) Y$ L2 k" R7 [' |

8 i$ h( O3 |7 q$ _' Y4 e};$ h, ^: w& Y9 d: N

/ _! T6 a6 ^1 T0 \$ {8 A% N* q
7 G" H& L+ i" ^" x9 Y) _3 ~
/ u& L$ O/ O& Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 O: s' D% X' w+ O
/ |6 n; l) C1 U; h
        .leds = da850_evm_tl_leds,
$ k0 k  ?* B& @( s" M+ C2 U- F* R/ ]" f" d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 h# N0 z$ T- M  {8 d4 x2 I
3 ]5 A4 n# V. i# o! _};  f8 T! C& U( H
# I3 `1 n& Y& H% g; C0 m& s3 A0 L

6 ^+ b, P& x+ i. O+ z+ y% c8 e; b8 q& {
static void led_dev_release(struct device *dev)3 ]) `. T5 L2 z& B8 j

. U3 j6 n- Z) q  u0 t9 B{
& w/ e! U; G, P+ [' o
) W& q! X, \6 P2 }+ W, O& P};
, L" F8 F1 O# o+ K0 X7 S
7 j$ l" {) X8 X' U- @; r+ n) I6 x, `5 |
# ?4 i9 f: Y7 X2 `  `
static struct platform_device da850_evm_tl_leds_device = {
% |6 _& [9 v! T$ c
3 k* T& d# r4 L, x9 g) \4 A        .name                = "leds-gpio",2 n* c& c  g1 _; @

( N6 i- V* ?0 B! a        .id                = 1,0 C1 p1 m6 E2 {

3 ?2 B% A. `% z6 ~2 A        .dev = {
1 P8 ~: [3 t9 ?3 [+ k6 T% A& i
, R) `' h, K8 y4 I& a2 X* s  b+ d' q$ R                .platform_data = &da850_evm_tl_leds_pdata,
) W3 o8 R7 r8 f2 z9 c
/ C# I: [) B$ c7 w) O4 R                .release = led_dev_release,
# P2 h# P* Z8 i0 u$ |+ f, q% t  `6 o- C
        }
, j6 H  \1 f* y: z5 D: `" v# f  q( ~6 O3 f' Z9 V
};
* `2 l7 n# ^) H- M: ]7 ?1 ~1 a) g) z, W) l# Q

% j* H. |5 g( A' R& L. T9 e( P: t" B& L0 e( z+ n0 y( N
static int __init led_platform_init(void)
% u7 D" _* H' ^9 |' l8 V: D/ r* w+ @( B' R) h
{) A: ]' J$ U/ F5 _8 F! k" H7 Q

0 g' B, k+ w, H  N* k9 _7 t- \        int ret;1 R# C  m+ ^  O0 m( n* c" `% K
. ^. h+ y; h% Z7 i) ?
#if 0# F3 b1 c& J9 T% b1 U, [

+ g8 P' @2 z- w9 \* K5 p% |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 m, d: Y! `3 j

& c+ Z7 e9 B4 y' k; o        if (ret)
" o/ g9 G1 U, _, Y7 e- }: s' `  y0 W- d9 C3 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( {) z& f! |+ R$ S# j6 b5 X' }$ n+ z5 n3 q) g
                                "%d\n", ret);
; Z! l1 E2 c" u  O( a% O/ J
; B9 K$ [' K8 J7 D3 Q#endif
+ O# V7 N0 Y, g# g
3 O. Z# L7 K' E- U& T        ret = platform_device_register(&da850_evm_tl_leds_device);4 t. B5 |1 W" q9 ^
. @$ Q% p$ F+ K3 m
        if (ret)" T$ r3 |) @7 u7 c3 J: U, P, Z

  w* V( Y# K# P3 N" p9 p9 I                pr_warning("Could not register som GPIO expander LEDS");$ ?) {& H% p/ z- L/ i

+ K) @8 `1 d6 z8 Z8 D# q$ @* B        else
5 w" C  Z! {6 I6 Z3 Z( v/ t$ W2 H" u
                printk(KERN_INFO "LED register sucessful!\n");4 Y$ X' |6 U4 f' k. Q, J+ o
4 v. S! Q, T) N" g6 n* Y  \4 C

  M: Z/ v1 H) V" y) v( h0 u5 f- C/ h, {; c/ w
        return ret;0 n/ t1 n. O) A. _# k" x

* `7 D& e5 }) j& @8 G}
0 }: n! o) w0 S" T  ]. y+ @3 Z& g9 K4 m$ F2 X9 G. K' Z

+ o3 g( d' w- U+ l; w
* w- [# P6 ^/ P' Tstatic void __exit led_platform_exit(void)
% T, l7 y+ Z4 }2 M( {6 R% ^* V$ U7 v1 a8 ~: y$ h9 c! i
{
# E8 v4 f$ s$ C# F# ]
  K- `0 |$ Q' i7 j4 j1 P8 S        platform_device_unregister(&da850_evm_tl_leds_device);; J% w2 f# E7 z* ~1 W  A

  y; |" m. w# k  K: q  R
3 Z3 Z! S6 `( _1 m8 r3 J% x' [" V/ x/ O( ]2 H- N
        printk(KERN_INFO "LED unregister!\n");7 u' n7 g0 O/ J5 F  }9 o5 V; }3 e. l

; Q4 v  I& U& Z  W}+ L7 F2 B: l' E2 I* m( }
! j  M6 Q/ j' p% X6 F) d/ v; Q) D" z

+ e3 g/ H3 f* G$ J4 z+ R" j, @) O) r1 G! @+ Y7 v; j
module_init(led_platform_init);
5 R0 ^0 ?0 m" f2 z* @
  h! p3 @' p0 `) ^2 n) Amodule_exit(led_platform_exit);
. S% M6 d. E( M8 r/ q0 b  W6 w9 ?* J( @. n/ \
$ x$ V) e1 j5 v5 ^
) s  I7 L3 B9 C! \2 \* S# I- p# e
MODULE_DESCRIPTION("Led platform driver");+ a9 x8 X" w3 @: O& N" H+ k

& s# J2 |7 t4 \0 a3 z, m7 Z$ eMODULE_AUTHOR("Tronlong");" W4 O9 {' o8 ~. I5 t
8 J, u4 j2 r5 ~
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
( |, z' m- u, W" A* l3 g+ Y( d

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32& ?7 x+ B6 D6 ]7 d( w4 H
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。- }; X8 U6 i5 b* {
...

' D) N& p# T+ a7 G0 v5 s好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
$ B6 c; E. N$ ?( `" c' z# 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-16 23:20 , Processed in 0.044977 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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