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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 $ G# {; D. v5 n0 q5 B9 T% L* U8 m3 m
( P2 P; b% B/ ~2 V1 G' N
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
/ v# J* r  E' j" ~3 M1 u: P) _' j* y8 Q
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?/ [7 \3 J& }; R
6 W4 b1 A. X# @7 D! G- a6 w

本帖子中包含更多资源

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

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
3 y6 `+ ]. a/ vlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
& }- M! K4 o% ~- e
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
; [8 J$ l5 p7 X. K' b: _) Z#include <linux/module.h>
; h7 Y* u* t" h) j' I  h: r
; s0 m) Y5 ?, J* L+ `#include <linux/kernel.h>
5 T+ L0 }9 i. N. O, E& P7 S' V9 l
7 ]% i* v) t4 B6 }8 j- E#include <linux/types.h>4 \& e2 o# N/ t/ _1 N; |
3 |; k, m4 t8 O9 I+ L  x! j4 T
#include <linux/gpio.h>' @6 Y8 ~- \! j" J" I
8 F; P% [1 U9 J7 c
#include <linux/leds.h>' {- Y7 h2 A  j5 F! ]: ^' P
1 G$ N- ~1 {: t; T
#include <linux/platform_device.h>
3 f" `. u% S2 e# V
0 I8 k' ~7 E; E3 j6 ]
" c$ t* e1 [2 c
9 F" H0 |; @/ x& t. h#include <asm/mach-types.h>
1 h! P. m9 |9 N) `
. ~4 R: L$ Y7 I  k) q$ R( o#include <asm/mach/arch.h>/ U4 x9 {( t4 A& H- W& V

7 C! V) r: h$ Y. v( M  x" a/ @9 k#include <mach/da8xx.h>
$ B& M8 ^' Z! f5 ~
6 \, {" b. P2 F" X7 s" \; }/ K#include <mach/mux.h>5 i3 e/ E. c4 l" R
% D0 U' Y9 [) d9 l. f6 _

2 E3 O9 f) S$ @* a4 B% J% U3 n$ A# l6 `3 j6 l2 }5 _+ @
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! s$ H& {# h1 H" {

( c1 r  q: r: q3 y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 g3 k6 g+ k) N4 ~
; v0 E) @( @. _6 m. m, g8 F: o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- q6 F; w' d: Z; k5 L8 c6 n$ O4 h" K! y' z. `  ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 o1 b( |& E; e7 [$ Q7 H

1 H$ M/ b& j% h8 q1 D  x6 [: U6 t#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
/ L( p& ?5 T' g6 s( W. V0 p$ B3 E. N( r3 p" Z
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)! \# r4 J* n5 n+ b- k
% C4 p6 x/ Y- ?& X9 {( C4 O* n! o

6 ?: q, n, c) U3 N
2 {+ x1 H* J$ Y: C/* assign the tl som board LED-GPIOs*/2 K& ]- D" ^7 K+ \7 T5 ]/ n0 P

8 C0 j* Q. A7 R. kstatic const short da850_evm_tl_user_led_pins[] = {
6 ^, ^6 k  m& ?" K9 X6 y8 [& {. g: y& b: o. T$ V
        /* These pins are definition at <mach/mux.h> file */
( v- B2 _' [8 g6 `6 H2 G% g+ J' q2 \8 V; F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
1 ?9 N/ z+ b$ u0 D: F& P  r' v" J) Y7 k  ~
        -1$ z& w0 I" L% L6 q/ M# F
& j: p- W( S, K% e$ `' k$ i' ?0 A
};( k  u$ A# U# e/ y2 q
4 [+ e) U0 n  A9 z+ G
2 U! A$ b+ r' }# p0 E

) J# ^: ?' v5 i3 |, y6 t" Bstatic struct gpio_led da850_evm_tl_leds[] = {, ]0 C( o# ^  c( u) S/ j  G. Q

9 |) M! r1 M* O1 q: G4 p        {& M8 B5 J. @+ R3 G; S9 `, p& D
) ?( X; K  L2 @. m% n& d) F7 d
                .active_low = 0,5 M  u0 H  [- D' D

; W% b' K6 i$ q2 ?                .gpio = DA850_USER_LED0,( T" A" ], w+ S4 [( D: c

% k9 I7 \! U" j' s/ W3 L                .name = "user_led0",2 h! z; R  Z& l- g1 x

! {  F% X) ~% q$ m" l' q                .default_trigger = "default-on",3 X" Y. j2 d! {/ L
) a1 c4 A5 [: u! g! L
        },/ \" G+ E4 {( {- a
1 Q/ v( k% _: h& Y" J3 ?, g  b- e
        {
; j0 b' k) ^' T0 R. O( R- d
1 a3 D; x5 ?% [                .active_low = 0,
5 O# V, X$ F9 N! [9 t
- c, C4 |% W) Y- V                .gpio = DA850_USER_LED1,/ N4 ~8 g7 O# q1 u2 w  d

& M  `7 H- g8 k/ O                .name = "user_led1",: y7 h; R( q  }1 h: \5 {
( \3 _+ C) U% G, K% j% {
                .default_trigger = "default-on",
. a. j/ I/ F& I* z6 ~& s3 j8 g1 Z
9 E( A( u: {9 s* o7 o5 d        },
& l# C4 ?: J* W* _; S' _
! M* }" v& R6 q- l  ]; i, d        {
; o, @1 I. l6 b, h) o8 _9 l9 L& e5 |# b0 ^& i7 [% U$ ~- {
                .active_low = 0,
# V- e7 f+ E- V0 W% P
8 H/ V) }0 E3 r& t: T                .gpio = DA850_USER_LED2,
; w( Y/ ~1 K# K5 r. i5 \
& r! G2 B6 B: F8 J8 h' J                .name = "user_led2",
/ d) Y5 Y* h0 J" ~) Z2 y0 l( a' ^$ O% Z  C. S
                .default_trigger = "default-on",
" g# z$ R& X: j  b# h
  Z/ G' r( M* R        },# ^& ~4 ^8 O4 w# G+ _  o

, @5 j: x+ L5 o) [& @! Y        {5 h7 B; t* O+ P  x
3 l9 d$ U$ K/ p: c  T
                .active_low = 0,
/ O0 l  v% m( Y% C7 C6 R8 Y5 x& N# P) W7 L
                .gpio = DA850_USER_LED3,
; O* X# O7 I. P9 C* V' R. d6 k) l; B. Y
                .name = "user_led3",+ L8 v" d# z, ~" l" @
3 z5 a  X' Z$ ~$ _* X$ o
                .default_trigger = "default-on",. X, k, W/ U$ m% N5 ^

" t. L+ J0 X0 z& d        },; q0 q* Y3 ~( H" D! p

$ ~* }! L! @1 e+ h  ]; i        {
4 g" C% o% R7 j' V9 a4 k. S+ W2 ^! Q* e% }
                .active_low = 0,
, k; v" ^+ v+ w7 `. l; A2 i( ]: F7 ?
                .gpio = DA850_USER_LED4,
, l5 v% H8 t) l& c. |# d" X1 i! r% Q& Q
                .name = "user_led4",/ m% x! q4 H1 k% \2 ?7 V1 ^9 f. S
5 C  T& }! K4 L6 S2 \' @
                .default_trigger = "default-on",
* g/ A1 e) c2 B. F* Z
3 H/ I4 c6 x; a4 O3 }, t        },
( y5 n' g4 y6 S1 k2 N6 W& m5 b
3 j( }" v$ ?/ ?  G! v        {7 }" ~1 O8 D0 Y# U4 ]" P! P
+ l# {3 V& z1 W
                .active_low = 0,$ L7 s6 _5 {5 W7 |# B5 E

% ]. h* j: k& k, N                .gpio = DA850_USER_LED5,
  X9 ~1 O$ E/ k! X6 J5 v9 I4 Q: `" |- ]6 Y4 k  W  b
                .name = "user_led5",+ c+ u; K$ d- l. |
! {) K! Y- n" f) J5 g; @
                .default_trigger = "default-on",
/ U1 p2 r+ Q, a' K6 t9 W; g% G8 J9 s7 @/ `5 g* l
        },
' a6 h# l% o6 N% F& I* y! Y6 _4 `5 ?: x7 J2 q( e7 F
};7 B+ `7 T4 p: A& |& S; r

- z/ h1 y* r" M, }  ~6 U) {
6 e' O" ^3 T" t. \4 _, y: q3 X) ^* a/ I0 E% J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* r& E! V: v7 X" z& k' K  Q& t  w% c! u
        .leds = da850_evm_tl_leds,
$ c% S6 [% n! j
6 |) G. D# V1 n" @' _4 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, Y+ ?6 c; U( D3 |1 Z1 D
9 S$ H: P* [! N5 B. |
};
6 B5 j" w# h) k( \3 O" m  x5 h# i# F! n- M) P
4 F" A. Y5 k6 P  L2 M) p

% I( U) @- A1 `$ b- O( A% Bstatic void led_dev_release(struct device *dev)" i9 }# w) v' O+ o. G$ i( w

5 c% f  ?# V, w" |: y( ~) Y{
* F, [1 b0 I% g  f
9 M4 c. ^- B# }, U};4 I% M; g" _5 ~4 _

$ ?( P: H6 l; p7 r8 ]
2 }' m& b+ G7 V7 G6 ^( e, L+ [% l5 U0 V3 g0 Y* U4 ~# d
static struct platform_device da850_evm_tl_leds_device = {
, q2 ]* J: t7 }% A* B, W$ ?4 V8 A- \
  m; o  W9 w4 j/ n' e! X        .name                = "leds-gpio",
& T9 d0 v$ u, p: c3 x. _! I
. B1 |/ A3 m2 A5 p7 ~  q! [        .id                = 1,7 o* Q" J' n- K
2 {6 X4 h+ F; T2 H) z$ }8 Y
        .dev = {& e" V* B, I5 [: y# V. j* j

) c$ t* F7 b  \                .platform_data = &da850_evm_tl_leds_pdata,
3 b/ T5 u' r# `+ {6 s8 }! N  u6 O$ Z* Q3 |5 Z1 Q- ?9 M& I" L' j2 o
                .release = led_dev_release,
, o( r6 u$ l% M' {9 {+ z: M5 B$ G2 i1 z
        }1 l' X3 Q1 ]& D, T  [% C0 Z6 Z
. n8 \; L# }9 f$ E0 o6 m
};
0 X6 F  \2 ?8 n2 a! b# X; _. n2 G$ D$ J+ T: K) ?5 i! y/ T0 T/ U: X+ ]
6 x5 Z' e* r+ L4 e
2 }5 C' ^/ A. ^9 _) y* D
static int __init led_platform_init(void)' a  }6 o  N0 L7 F/ I
  R4 K1 M, V7 T! G7 ^
{7 ~6 l; k( l( f

  Y5 t7 M! U. Q2 {9 ?! _% `" Z        int ret;
- r; o' S9 p4 y0 p( s$ j
9 W4 |  M( d) q#if 08 @; e- A, D8 D+ v* d

# \& D+ i% g) G5 K% ]8 n- N8 z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 P6 O; c# {$ ?+ `

# k+ g, Q( K3 O  m) x+ Z. A        if (ret)
- Y) v' \* e. Q4 M2 P5 Q) @1 c
2 I4 A* {, B. ~, E, i, b9 \- m9 u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  u9 P4 r, |! e: M1 @! `0 n
) ?0 h2 ^& Q% v, z8 d0 b
                                "%d\n", ret);' y: D& k: I5 j7 u, U
$ ~5 k' @2 a  i& b' k& D; L
#endif6 d9 ~/ d' E0 d, T* Y8 ]4 T

* n) n4 _( ~2 J        ret = platform_device_register(&da850_evm_tl_leds_device);
- M) b. n4 x9 V3 ~* ?/ y# E0 i! F
! c0 E  @8 t. e" U2 D4 o7 \        if (ret). d2 B% @& F* ^. @8 W; d
' |# J# n& P6 k4 p
                pr_warning("Could not register som GPIO expander LEDS");7 U  R, m+ i0 y; H' }6 F+ F
2 [  V2 S  j2 f1 i& y4 K
        else' s* {& T/ \5 @2 V0 ^( h3 l

1 T/ V1 B3 q5 i& N! V                printk(KERN_INFO "LED register sucessful!\n");
- L6 Z! U8 v+ F& r) W2 D
9 q& o0 b! \. \1 ?/ k9 |) O, o7 w5 ]" F$ g7 ?
* D* D! H6 `1 X  d
        return ret;
% ^' B: h0 O5 E+ b- F' d, x# q5 c& B, K! {6 W6 M' G
}
6 v7 s) V" |- }# {) g/ q. k" N. x6 v5 i1 W1 _, C- m9 a
5 J3 k3 {4 {! D- @9 E& t

0 j' X9 y% _! k5 f! Vstatic void __exit led_platform_exit(void)8 Z! e+ \* S- R$ }' L  G" {

- A! F9 k* P! E{
( `" G) d$ ~- a) s* ?
2 w6 t4 O+ y' P        platform_device_unregister(&da850_evm_tl_leds_device);
: u4 s6 d9 A9 I/ g  `* ?7 C3 O0 d+ t5 J5 M* ~

$ }2 Y; Y+ J2 D$ w
$ @! C3 u) d+ H) M        printk(KERN_INFO "LED unregister!\n");. ?* j7 w8 {2 ~
2 X# F9 t6 W) v0 Q% Q$ l- h$ o
}
% n$ Y; p7 U) Q5 w
/ N- i3 x( Z! c9 @) {
, R( D9 J( R/ E- L4 P9 ?1 j1 f/ ^% ]$ i, ~1 g% q
module_init(led_platform_init);
5 A9 F0 U( }" `: l1 [* O/ h) f9 o+ \' J; I% W# F
module_exit(led_platform_exit);' {& {1 s6 R0 q' r# A

. Z9 }( a* ~7 {# Q7 D$ k
0 C/ w, b: y: }% n1 r: Q9 P& o# l" I$ u; ?
MODULE_DESCRIPTION("Led platform driver");# @" b4 g& {' q7 X1 V

2 a& J( P  v4 W' gMODULE_AUTHOR("Tronlong");
! ]( x; g# k. g2 b" x% E! }0 j5 K9 r. o6 M% N# @. Y% Y* i
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
4 [- B& M" ~' \- ?. N7 W1 Y. v2 M

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
- K- u6 N1 i: e* K您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
0 H3 n9 j) z0 o. c* v ...
6 ]8 h3 g$ O) i
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
/ H" D" C& ^# _, R; B0 B2 jhttp://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-6-16 08:29 , Processed in 0.044210 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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