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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 0 R0 d: z+ v8 Z7 X2 k) ^* i  N

5 ~; V; ], E) A5 A9 @4 F, _& c: X请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
+ h1 O. r7 m% i  q4 \, G" @- T# n' j% s3 {! d2 R
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?/ e- I. C5 {8 W2 N
. }; M: K# x; m3 t( M

本帖子中包含更多资源

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

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- y; {5 d. q: b% g
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
9 i1 [7 x1 f& u; n5 x4 q
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
8 P2 ^  N) |' f9 [#include <linux/module.h>0 C8 d9 ~: I3 H' B& T2 c: }

% y; f8 e% L4 c7 k2 L2 |#include <linux/kernel.h>* E# c' N$ A. h" `  v: k
6 i; N" g6 s+ T( F
#include <linux/types.h>* L, N. ?& |  v2 ?2 w7 |1 m

) U1 a$ D$ B9 a: o# ^8 b( S6 u#include <linux/gpio.h>
9 g$ E: L* i* U6 D  |8 O( |6 q9 e) C' k7 B0 o
#include <linux/leds.h>
8 f6 S8 e, v1 ?% e8 x* R
. v6 b' W' C% s& r9 @6 j#include <linux/platform_device.h>5 K. h! w$ ?/ R# r; T' x" }3 c- ~

  q- X% y/ Y; o  K! v/ s7 e4 e- i' O* [8 y

* R& {: N& O, l( c1 }: t! a  _#include <asm/mach-types.h>) H+ j. o, v" M; r& r" @

$ T. }* u5 F2 T" E#include <asm/mach/arch.h>
" p9 _# T! W3 T( B5 L+ K8 O9 h9 [  f5 ^. [# U/ [' _
#include <mach/da8xx.h>; W) a3 c- l. f) X! Z
' O- p6 l4 E6 F! k. C! p; b- f$ @" @
#include <mach/mux.h>0 L8 S0 Q& x. O. ?
8 N1 f! _5 B2 L

% v; r6 s2 c$ k" w$ L0 z
0 o7 c  O3 N6 e3 k8 p#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ x( C  y% k7 z9 O5 a

7 b3 {  R! O! `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 z& W# v  z/ o) S' k3 \( x

4 k& W- o/ T+ ]8 b3 [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; g# w5 a/ r. U3 H& e, }# t! o) U1 j& ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 ]. f, ^: E- Z# l3 R( p8 b1 `

8 M6 S' ~# H, K5 Y+ Z#define DA850_USER_LED4 GPIO_TO_PIN(6,12), F( C4 @  z- \( |* [- W
" B3 U4 N5 N, A( L: w
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
  }- E% [9 s0 f! d' \
& r' m, L- q- n% S9 B7 d. U& a2 C7 B' X

: W" Q4 x5 ?( M& k/* assign the tl som board LED-GPIOs*/5 i) ^- o# b9 P9 [- V$ r
  o# M4 L: j3 s" C  E0 W1 C- C7 k2 R
static const short da850_evm_tl_user_led_pins[] = {$ a& W! ?" O' p; x5 w, Y

, Z- [& }# m& n- a. ^. y, U% x1 ~: e2 O        /* These pins are definition at <mach/mux.h> file */* D9 A4 q) f# N6 j1 `, k
2 A' S) h5 u9 j& O, j8 q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,3 h( K0 [$ r! T4 q3 f

& M! v+ C4 H0 O" B0 o1 y        -1
6 j6 a# e$ b8 \: n* l* @
. O, m- |% y( \: k9 S" F};3 O# u" o/ `% @( S

7 R4 D# E4 q) z8 O+ U1 \, i
( S5 x9 D$ m" `, V3 W8 |
" d7 f) _) e4 a8 E. t4 V! |% {  e' cstatic struct gpio_led da850_evm_tl_leds[] = {6 r. w6 A+ K) ]5 A2 q
% S, U; i$ ^3 Q( t$ v
        {6 l% `* z$ p! O0 g

/ Z5 r2 R* N5 r6 n. ^                .active_low = 0,0 W- d. b+ N5 O/ `
. Y1 }" u3 @  P" x
                .gpio = DA850_USER_LED0,
7 O" e- Y  u3 i/ P- X. |5 w  I
2 T3 t: q+ C4 n; U& T                .name = "user_led0",
  \/ G! U* k1 [, M  y
" d) K8 O% h% o* q# n# p# v9 Z                .default_trigger = "default-on",: }5 e9 [' N+ k( m# p) Q% e
' M* b; B, n# B2 q( l: z& L1 k
        },! ^6 S: X* c6 p  C3 s# l, O
& m4 D; J3 b8 ?& X9 I
        {5 s! `7 ^4 H  u4 A* r  g2 x
# \# a# B! A+ e7 o8 B
                .active_low = 0,
( b, T6 p3 O6 L, V8 D0 h7 X
! I/ j7 I/ p6 t. I                .gpio = DA850_USER_LED1,% U3 f; O  L3 c1 {2 h1 l0 e

8 b+ m5 d& O# q( h+ K+ r                .name = "user_led1",
7 o% i8 {9 Z$ Z- P
, o1 i2 i0 q, }0 v1 z7 |                .default_trigger = "default-on",+ i, w5 Z2 W) `' U/ g) K

' R% j% @! n. i: a5 B2 L* u. l% @/ I        },
( m1 o3 V  F0 r0 ?" X
* Q: S9 R" q3 |7 e  f! ?4 z6 p        {* x- h+ ?% F( i% L: j/ f7 Q

- g  ]9 n1 D$ M2 S2 o3 u: ^+ l' V                .active_low = 0,
" P, x$ }7 w: o' z
+ h1 N) r' J  Y$ H5 n8 _                .gpio = DA850_USER_LED2,1 j+ o& W! u! V* t

4 D5 h4 m5 ^% \, M- F6 d- Y$ I                .name = "user_led2",
3 N/ E& n" U/ u! \2 f4 X  |9 x) {0 r, \" S
                .default_trigger = "default-on",, m5 k! |8 m6 s- p) d- T

; Z# n; ?0 ~/ N        },; m1 }( x& G2 u$ e8 I
$ P: s! w, K2 N7 r. I; V$ J
        {
- M. }+ L5 H/ P* z
. c- ^3 R/ Q: _3 T: t: u                .active_low = 0,
5 R: }; Q7 ?# f& V8 R. k/ u6 C. I9 I; ~
                .gpio = DA850_USER_LED3,
6 ^- a* z) C& p2 D1 A
( ^) k% ^7 y9 ^                .name = "user_led3",
" b+ o! ^' P% E& ^" E' U
9 S! ]  F( K$ p' X                .default_trigger = "default-on",
& q9 Z' W& d! q* D$ H
% B$ L+ I) [( o& ^: V        },: W3 L8 i4 ]  j& U  ]* [

* w, W5 {7 z* O' q5 t. z! l        {& [; ?0 J4 f* R) Q" F; Q8 e

6 P* \; q* e, F: ^. e  [" [                .active_low = 0,$ n! n; R, M! ~4 f

; B! A; F9 L3 O5 S4 W                .gpio = DA850_USER_LED4,
& Y! V, _4 s' X8 h5 e4 g: Q/ {- N8 w& j& z' |/ W
                .name = "user_led4",1 c3 N2 [1 a* }- Z

9 b2 B1 m2 S9 V0 u3 u6 R                .default_trigger = "default-on",. X( y  n7 Z3 C: L( c6 _! z
. \9 G% R% K! J8 }. }0 S
        },
4 c% K9 |1 b/ h3 C& {
$ M8 G( s* y/ K        {
$ ~4 [+ m; b- D# S* p, N& f# V2 D* A, A
                .active_low = 0,
; ^  m1 r, h: ?( ]3 _/ V0 E7 q
3 V9 z$ m# H6 }- N# A5 Q+ D1 L" }                .gpio = DA850_USER_LED5,& \: f0 B7 s5 h( l0 {  r

+ v) _1 j: q* B' C                .name = "user_led5",
- J) D9 [! t! {9 @6 u0 l& U' x, ?# R4 h3 C9 `1 y' ]" N
                .default_trigger = "default-on",2 t' v: Q1 ]" J' U# v9 }8 m

8 H/ K( G6 O" ~  \0 a- a        },
8 k) T6 J0 A$ t/ b9 H# \, m' M, r0 g3 _/ @
};
! a# ^4 W) i8 y) v' I; j& r  ^8 p
& U$ |2 R. d+ y# R3 i1 Q9 R  o6 F1 z* t
( V. O* b9 u/ ~; ~) D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* {$ g; p$ v3 P( j( I$ P3 h3 H0 t
* p' ]8 W! t9 Z" m* \9 _, m
        .leds = da850_evm_tl_leds,6 h: j' O1 x+ @
6 V' y9 q8 i% X7 z) q4 I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  T$ f: V2 ]# N3 Y7 k5 W0 |0 H. T
9 h* r5 f" l/ H: o};7 b5 l5 ^. |# r0 u% k. Z+ H7 i2 X

" Z' `. e% `$ }
  w/ S( V& x* @4 V5 W: }7 P: j0 c6 w5 q3 N% ~0 }8 H0 W$ l7 r
static void led_dev_release(struct device *dev). a0 i6 Q8 o. k: V6 _7 V# `9 g

# z9 T. o5 u: N3 x6 U{) ^9 ?, q3 p3 g' z% `. @' Q4 M$ F
8 ]% h7 n9 {: x% X5 e1 k
};
. w. q) t7 f2 B4 m7 b- i0 b' |# U8 `. B: j" G6 ]

0 z& N" n" d0 a6 q* v& b# L0 F" I* N" @) d3 \
static struct platform_device da850_evm_tl_leds_device = {# G  y( E# w3 N1 ?  ^
) R6 u8 n5 R* j1 B! a
        .name                = "leds-gpio",
5 I( E$ s: K, N0 F! y
- \$ V: G! P9 u* h9 h        .id                = 1,! n) t2 y& ^, s/ {# }& s

' z5 J! t2 V. G, U- h/ |/ h        .dev = {
5 P' ?/ G. D) P8 o1 A9 n2 D  J: a& S+ M
                .platform_data = &da850_evm_tl_leds_pdata,
. }4 Y0 k; P0 {9 a5 A6 q- T. O
! M! N6 V% r' @, _                .release = led_dev_release,! l8 U% J, u) @$ _3 s, O
  f3 u1 M  a  ~$ ]! z! K* `
        }) e, R/ Z: X- j7 g2 h" b+ e

6 L* a+ o5 I& A( ]  L};& m4 p/ G& A0 [" e  K9 L

3 H1 I! d& [2 t. T+ |
: E9 a% }3 F& J' u" I) Z% j3 F, C5 j
static int __init led_platform_init(void)
& F3 A; ~- ]( ?3 C5 T& g9 H7 M* r2 x1 w' V
{% t& G2 p$ T0 L1 I4 F

2 g& p; l+ L. y' H        int ret;
, z2 y0 A% m  n- C# }" p% q' A% M1 M8 f% r' _3 |
#if 0- Y3 {1 H8 A8 K; Q! S3 S$ J  O
6 T4 z( o5 X4 e" }1 Y$ M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' L8 W& L( }7 J6 r3 o" ^  T5 g0 D
        if (ret)
/ o( Y% B# `  j: g9 X4 K" C, d# {6 q& ^8 H9 }+ J8 g4 e
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; t% \! ~, Z2 x: J8 W* d
* |$ v3 q- p) N6 x9 C                                "%d\n", ret);
0 g1 l& |! r. x  V0 O1 V3 U) d2 }% L
#endif
, q, x8 e, d& u1 q1 K& z& S( z. [3 E$ g- h3 c, X8 I2 |
        ret = platform_device_register(&da850_evm_tl_leds_device);3 E7 P; }8 S) s
2 f8 _- v6 b" e; `. X2 ~' R
        if (ret)8 A6 q  Z1 E# A7 v$ n- d3 X+ `1 u& G
4 \1 }+ K- j# f9 l! n
                pr_warning("Could not register som GPIO expander LEDS");
; d) S7 {1 [$ v4 ~  S2 K' d- a0 q% }3 R4 k# v
        else
+ T" L5 W, O7 ]  C0 X, o4 N/ j( P0 W
                printk(KERN_INFO "LED register sucessful!\n");
: {+ S6 C) Y9 B( w7 h+ s, }+ ~  c( U; A

$ N3 A: }( l$ q5 r
' l/ k0 d7 Y: U) N+ y        return ret;
0 [/ o) g  ~* U& H- N
; P$ e4 X7 U) `& e* Q4 M7 v( i! Q( \}" A( G: _! M( S( q6 c& X
% V( f5 U; l9 o6 _' A( h. t& y: T

" _. @/ l3 r6 f1 X6 c0 N5 ~; H8 O- @) A: z' u% N) i2 n8 {
static void __exit led_platform_exit(void)
. f9 K2 P( \6 n7 b. K! t1 d2 I' j7 S8 b4 Q! i' ], K7 B
{
. g9 Y; a# P' f1 V4 n( @9 k
& F2 y" l2 a. _  R$ b3 [        platform_device_unregister(&da850_evm_tl_leds_device);/ u0 d) K( j! `3 i

- M- R$ |& n. [# C9 n( c0 g! o( S
) u( p) k8 e: R9 ^% A! F# _9 f4 _! H- u8 _
        printk(KERN_INFO "LED unregister!\n");1 i$ a* c9 g. r# T2 C) C
) F. W3 O2 Y) A3 W* \6 \+ W' a
}
+ [% e" s' e  L, s% Q( X- Y% G8 Q  |. U6 z; q2 z

, t1 e- ]* H6 {' M" j' R$ @4 P9 p) x5 T7 A  D. n* Q3 Y, x
module_init(led_platform_init);0 N) d/ E* y$ {' @8 ?
8 _6 U- U( Y7 W9 K
module_exit(led_platform_exit);4 c! P- H3 T- j  ?: }1 g* \

6 {* i5 o0 R* l+ s
0 t' f7 H0 m! P. K2 `+ R3 r5 v' a: ^
MODULE_DESCRIPTION("Led platform driver");
+ e: p7 ~" b8 Q" s) Q# @  I3 C' l# J  @" l4 u0 E/ ^! p+ D! j+ C: f
MODULE_AUTHOR("Tronlong");
1 k4 y+ _% Y  u( F1 V; }' O( H
) c2 X6 Z, M1 ]/ s- R5 g: {$ H0 ?MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。- |7 n% Y) v: n# ~, v4 o: B

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32. Y4 R2 A, h5 i3 s& X# K% t
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
4 M4 O9 h9 F2 X0 W2 t ...

# p# {% h1 R' c& p好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
$ [; @8 p. D6 M2 V8 D1 m7 lhttp://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-19 15:39 , Processed in 0.044931 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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