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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 6 L, I+ u" ]: a# M/ @
9 C8 U: i+ o* H# g
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
7 _% y' h' q- ?8 r! a7 M' z
# Y1 k: p7 q9 f5 i& x之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
4 q4 q& \! ]# \. Z5 X
2 U7 F: k# s  B- O8 u7 E

本帖子中包含更多资源

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

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
# [* H) K4 j. wlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
' B5 u2 G8 B  G# r% o, i' g- ], I0 C( w
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
3 Z, U9 V5 x  @- q! j) j#include <linux/module.h>* V, _  P% V- z  Z* [8 x
3 b% a* K$ ?5 Z  k
#include <linux/kernel.h>
; \3 A0 I( K" V. Z) P
# N2 {  t) U5 y2 j#include <linux/types.h>0 ]* [% v8 d3 z5 c0 M: w& M3 i
8 N- S. S+ S+ ]( z) d
#include <linux/gpio.h>
2 |& g3 v/ k. }$ C  W6 @- f; v6 ?- W2 e1 p
#include <linux/leds.h>: E, B, a& X+ w" L+ |- h' F
8 J6 Y' G) e: e( a0 R% M" I5 G+ K
#include <linux/platform_device.h>! d+ C9 }# F0 ~
, M3 k# v0 M+ a7 G1 }$ d! O: ^
; g% \% _7 Z5 ]8 I  @$ ^( ?7 w
. E; Z7 t; T% a' J. @
#include <asm/mach-types.h>
6 @$ ]( u# U2 e, L3 D  n+ F8 W& q& r0 O& u& G& ?
#include <asm/mach/arch.h>
9 `9 p6 F" f2 u0 n! n) J. ?" e
' R, Q  r8 n- A4 s#include <mach/da8xx.h>
; b6 y+ D' O: h; m
2 |4 V  o3 }9 G3 f! i#include <mach/mux.h>' ~: `7 _& @6 ]$ u
- z, i( o& g# j, f
' l) d. H# Y; k. {1 c
% c: o- O  e! F4 N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ u7 t* D8 c; N& g0 t0 I) x! B3 r  q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 K6 ?; u! W  a! Y, d: N7 ^0 A7 ^  A, P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), d, e) H3 H2 c7 f$ Y5 b' R/ Z

4 d. q. U8 @- C* ~: Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
. R3 s6 F8 @: b. S  r. Z7 c  N3 i; I. q, k( w# [- _
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)+ a) f7 k6 p0 P7 V; e' j+ C

4 A# p* Q8 V/ |$ q( r: G2 _#define DA850_USER_LED5 GPIO_TO_PIN(6,13)8 v3 \2 q" I: h) l- O, [8 W
" a* C0 U1 `' @

' G7 x  t; n% P0 F1 M  N% l9 E, A8 h( e6 Y9 t& w/ x
/* assign the tl som board LED-GPIOs*/
4 E6 w$ U' d  Y( Z9 w2 Z- f3 y7 X& ^! o  Q5 G/ I/ g! Y' J! C0 l" O# y
static const short da850_evm_tl_user_led_pins[] = {9 \$ F5 p$ G/ n' _/ B

, W7 w' {6 ~$ N0 C" [2 q; h        /* These pins are definition at <mach/mux.h> file */0 F$ e3 `0 O- k. d. w5 U

9 J, j5 R; J$ c- w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,( \$ k( M+ g% }$ P" z
8 I) C" j1 h  f1 e: J9 Q
        -1
4 z. w3 O  W3 P6 N  C3 |1 [  j6 I
+ s1 w  z4 O/ z6 K};
: o' X9 y+ ^* O8 J! A, [. x7 c
0 A3 {+ q; V4 R3 j8 P: Y
, A8 H9 E' p/ }; c( \" ?# c$ w* D: |3 o& o& l8 L
static struct gpio_led da850_evm_tl_leds[] = {1 W/ Q$ B9 B) C& i5 v6 c" t
1 c; ^1 S1 c! s! c$ a+ a+ |
        {
8 H1 h/ S7 O8 I4 `* G9 H- ~) M8 E8 M4 H
                .active_low = 0,
' U* v* h+ A  v) t4 \- B7 V
8 W1 f4 y  K* F4 L* f                .gpio = DA850_USER_LED0,( j$ D9 `; e+ A4 p+ z

8 B' W" a% O' S6 o5 G3 q" N1 u                .name = "user_led0",$ i% {" ~2 y# \% c% F

, s1 q5 u. O! @" t8 h. S1 q                .default_trigger = "default-on",& K! b; C) H* h4 v8 a. M
9 h* |! Y6 M4 f% t
        },) _) G+ X$ f; b, U% L

( y& {; T. J8 O( p        {: d' r$ }! q0 d, b, z1 `! W

. D- R$ B6 x7 g" y( m; v% K                .active_low = 0,
9 k4 ]( p% r: O( o' r% i
; X0 ^+ O7 U: e0 ~3 i                .gpio = DA850_USER_LED1,
! P- D0 i6 d& L! d7 x7 f
" Q$ n2 }: c" S3 S2 |8 _& a8 X( z. e% n! `                .name = "user_led1",7 m* p, c, z9 B/ P: m8 O

4 v& V4 C( g/ [                .default_trigger = "default-on",
1 ?, W' \2 k8 t; s6 d8 R+ |3 v  j
' k4 c/ C3 B; K% ^4 }. ^4 M$ H        },
# J* \0 X( m& F. J% \9 V
4 {$ l- S4 R0 T$ s) I        {
  S% M/ U& M) u% m- p% l6 y; {8 N) q5 l8 A
                .active_low = 0,
( z4 c* T+ g3 R  }3 I2 h
8 H! q, a) \9 K6 [) r! U                .gpio = DA850_USER_LED2,
6 s3 r$ Y( s2 m; A0 |: }
$ Y5 n7 V  M# g( z9 P/ H                .name = "user_led2",- x( `+ W* V/ w- C& P

4 H+ O4 v2 c9 r4 I& _                .default_trigger = "default-on",
8 z3 b; g2 d3 [! `5 f" }* G8 o6 d" P$ l, U. P: a4 W# K9 I
        },5 D! v; ^; j' x5 Z- q4 E

3 c3 A2 L6 M* @( @        {
& H6 X! ^6 K5 R: p
; v9 ~% i. @3 M" l8 h8 i, w# u                .active_low = 0," x4 m5 s9 D6 p- ]  ?8 ^

$ [: w/ m% X, k) _7 F* d                .gpio = DA850_USER_LED3,
9 ~  t* A& Y7 T( q  D# b0 s+ d
* R  g) g% `* L2 `8 F9 m  C                .name = "user_led3",4 e: o4 h+ t, s/ q" O
2 F' d( ^8 P& h. u
                .default_trigger = "default-on",
! t6 R# N6 U6 U6 N% ^: S- F- w7 g
( v8 g' j7 _$ E1 x$ p& c# ]5 I, O9 w* p" A        },, Q" H: A* C2 R7 w4 h4 M4 S

4 g, u4 V' j! K        {
+ ~: }# P( _2 U
' e$ n5 {& E* g                .active_low = 0,& o0 H- {2 e/ S

% [3 }7 I/ ^& |: Q7 D/ g2 D7 Z. o6 R                .gpio = DA850_USER_LED4,; Y6 V0 l& a) G
7 h: H) t! [/ B$ a
                .name = "user_led4",
$ M% W% w8 q1 E. s& p4 K
8 w" ]4 C* y0 @. N/ F, b                .default_trigger = "default-on",
8 q3 n" v: H7 t) s' e+ b5 U' A3 R8 K# T$ e
        },
( \# F+ ^2 G6 ~7 |  i0 p+ ~! G
* `. O( k/ [$ `6 f9 U; e2 L        {
. i2 W7 b8 n& m+ L( l: @$ z- g7 h
                .active_low = 0,
7 \' y" @( o9 j
* `) U: D# p9 {, B( `                .gpio = DA850_USER_LED5,; v6 i4 Q. O5 v3 |; ?: }2 h- o  V
* q6 }+ U7 }0 {) w9 [
                .name = "user_led5",2 t( [, C. ?- N( v
( M% h6 v( Q8 ~/ j, y4 J
                .default_trigger = "default-on"," U9 u, E/ p* k' u

; `8 m! I) d9 g        },
0 d. ?( s! ?/ _  V/ |" A! @2 i/ g" b. E
};
1 v0 [1 _; m: D" E: C. {" i* @- I* b6 q1 D" _- e

# k8 D. E9 y) h. j% E: W% g# A5 }7 w1 w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ r- m( ?% m) y

0 u* @! _6 n- C' P' x  E5 f        .leds = da850_evm_tl_leds,
8 E1 i' B/ u: @0 y' _3 l1 T: p
7 H1 k! K7 k* g& W# d+ T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" C' z& W& d3 w/ G" q  m9 |, h" Q1 \7 G9 K7 K
};
$ P" J- Z; W; v- N5 T( Q$ Q
: D7 ^/ q& [" L% W4 v
; E% F) ]5 |' B, V1 V' U2 |5 n
; h- _6 w$ w" H( t$ ?9 {static void led_dev_release(struct device *dev)
* R8 o: p: Z9 A2 M$ c
& H( ~8 X# ^& @1 b{
3 d- u1 ^: n1 F/ e2 i: S7 J
: q% d9 ^! t+ A$ W9 }$ F};0 f! g+ b8 ^8 k; ?& ^; @1 N

2 i5 P2 O2 |3 M* X! m! [; P# [3 N  \6 X2 x, p/ R+ X% O! a. d# A7 b
* L+ E/ W/ \5 [+ r* V3 I$ f
static struct platform_device da850_evm_tl_leds_device = {
9 ^. E7 {1 R, O
! P' v/ B4 |1 I, u        .name                = "leds-gpio",
+ Q. R$ f( j$ v& x8 f2 {' @5 Y. c% ?# S% T4 s$ D
        .id                = 1,/ h5 e' f) L7 b$ Z4 P
8 F/ i2 c% w- D. z: I% `, a9 C6 z+ |
        .dev = {5 F3 s" K+ i# B  [+ W
( G7 G, L9 c6 P' F$ a3 M- ?1 b
                .platform_data = &da850_evm_tl_leds_pdata,0 u% V/ B5 n* U3 ~
9 K2 I- J/ e0 a* ~! s
                .release = led_dev_release,( Q% E4 V2 G- ]) B
/ N+ |, w$ {9 A, l3 f& Z, j
        }1 Q  e1 x" V' _9 m, J4 o% {0 U0 o

5 F1 G" P$ V  q};
. g. _5 T6 p& |& W0 q/ f4 o
6 u. N) ~2 |7 E5 A0 B' T
- w- T+ G( Y: e: K) P" s& k) ^7 x* i7 V, j+ m# Z& U
static int __init led_platform_init(void)# n9 z, X1 U) S5 O; @. w1 L, Z+ D
' Z/ |/ l# ]8 n- ]0 R
{
6 Z2 E. J; b$ q+ x( i
. W% r5 A# L  j! F2 H" `6 O        int ret;
- p+ L3 |: Z9 z/ x. P6 E
# T4 f: f0 h. |- q+ X  l#if 0; |5 Z+ R2 `, y& h  D
( o8 Z# r$ M% f6 C* F6 \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 {! j* W9 ^( @6 [0 A* d8 L$ {$ y: R! {+ T6 U
        if (ret)
/ k4 ?, u& b# ]6 s% H. w# l4 S$ H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' }* {: U! T& F
3 ~8 K" O& q# y' _$ b                                "%d\n", ret);  b% r# ?3 @: r$ m) E
7 A0 |# L4 ?# `& h2 O- O
#endif
% ]+ v, ]$ Z) y: k$ v/ U" U3 p, E4 b' D/ F8 ~+ D, I
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 q$ n  k' h4 |( s" Q  Q8 b0 U
        if (ret): f8 @5 D! A# v5 r

' j! U4 L% y; @0 G5 M+ ]9 b9 ~                pr_warning("Could not register som GPIO expander LEDS");
- j) ?! |$ {0 c" _" o9 ~1 I( ?+ A/ s0 K: B
        else. `/ p) H0 O7 r/ z7 ]' c
% w. L4 p1 E5 n/ u; o0 @6 |0 h. k8 t3 o
                printk(KERN_INFO "LED register sucessful!\n");
  C. K, b( ~4 H3 F7 n1 H! h$ r- Y: |7 @0 h$ j

( _9 S. R$ W8 ^- e
7 g( Z6 T- Z* R8 k+ _        return ret;8 W* |4 P; A# c- i6 g1 `# G

$ r) H3 @. S9 I# U$ h}
/ u6 ^7 o1 |* b) p
! T% U; [! o0 |0 ]: I) W
5 z( p; q1 v+ t% A1 j1 J
, G# w$ Y5 J% Q- ^static void __exit led_platform_exit(void)( C2 c& g( F. ~3 n6 a+ ?2 K

  O2 `) i5 o. ?" H6 Q2 Z0 Z/ M{
7 ~  l1 [4 w! G) x) P! p9 l9 s& e9 J2 p. }8 C
        platform_device_unregister(&da850_evm_tl_leds_device);
  ^& _: S5 i" }  _( k; Q# {8 E: Z& H& \. E; G

: \/ r6 @. ]7 Q4 A6 t: B! Z& i, C( ]* B/ f; }  m
        printk(KERN_INFO "LED unregister!\n");
6 M% G' |' P' \! k1 W9 y3 k
& v! E: H5 g% t2 }/ q! U( }( \}
' J. t. a' o( H: `
# e" m9 R. V5 ^6 O6 G3 m1 X  n9 Z1 O% B% X9 q1 s* k4 U' @

' f7 f9 M  y: f' K5 ~module_init(led_platform_init);
9 {% K/ q" M! X
& H, v$ d/ b% U0 dmodule_exit(led_platform_exit);( V: X0 u: |) X1 L! d% F! D
" }, O( @0 A# J1 h

% o2 q( l! \8 e2 J& v7 Y
! I9 B" |! n# LMODULE_DESCRIPTION("Led platform driver");
, y; |# z2 i+ J. |7 ]* X
4 _: e* o: g8 C1 gMODULE_AUTHOR("Tronlong");! h. _# R! d' p

6 n6 {+ q& b0 jMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- T- ~: U# A- q  [

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:327 H6 r5 N- P$ v9 r6 B- L
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! b) e, X# L/ \% O
...
2 u7 v4 y- i/ @3 P6 q" b
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。5 L2 @+ J# |9 A5 P* W8 _
http://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-3 17:17 , Processed in 0.044156 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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