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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
, b3 f1 `/ ^& @' ^* M3 S
, A  `& B: {- m2 e  u1 M请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的) Y2 }: r6 S  e% {  }; q0 R3 a* E; W

+ k/ v8 I7 ]0 A7 |9 i之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
* C6 W4 H0 t% i' d% y  I3 w
& v2 V  @/ q# @% z9 z

本帖子中包含更多资源

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

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
/ O' p+ S9 q- x# y2 F& f/ clinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

# q0 r& `1 x4 \  ]0 d我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:, i  g, i7 B' m+ Y# a- X# k, X  G
#include <linux/module.h>
/ {. ]! V& `0 D8 r. l+ m$ c8 A" t. N( @! H" Q
#include <linux/kernel.h>* \1 ]' n9 d7 d, w9 _

, n* `* u0 ?1 f, B' n+ G/ W#include <linux/types.h>
5 c' D$ Z, }8 i9 |7 X
2 ^; N: G- t3 ?% N! K4 @#include <linux/gpio.h>2 N$ F8 X/ l1 T. s
( q2 j3 g0 M. t. F9 y
#include <linux/leds.h>
8 P, O% y9 k) T- t0 {1 Y: }) k- w, w$ Q5 e
#include <linux/platform_device.h>2 e: N9 l/ C) e( W0 Z# r, S
* U9 Z- {; m) g6 P  g: h
9 y+ t) _$ t5 u* T
* ]1 B; H/ ~7 ?( y) U
#include <asm/mach-types.h>. f7 d! G# R9 ]' T. Q

; Y# V; I' q3 k( x& E#include <asm/mach/arch.h>
  Y2 y1 w) ?/ o7 e- y, [4 i. N; V' `
#include <mach/da8xx.h>3 Y4 F9 u! k: T( n5 [$ k
7 r, v1 I, J8 x' H# `6 m
#include <mach/mux.h>
% x& N& k% V8 F( m! s: i5 Y9 ^/ L
, i% l$ A, ^5 G/ y$ P/ G( V9 `0 ~8 |$ C1 w+ T* X9 p

9 k0 L9 f3 G% r. M. e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) e' L- o0 Y+ }4 l( ]2 k4 D6 U
, r  `( [& t) Z9 w+ o; {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 _9 _5 S0 A9 j+ b8 d3 X
( h7 @+ i1 Z. a: C' y% {* ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% ?5 Q1 P: m9 J# c
$ x  ^5 p0 K+ b- w8 w" v+ ?- V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 p4 j2 |" l- V( Q
7 Z1 e+ ?% K2 N" l! @# h
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
7 T5 z9 s1 T! S: |. Z3 P2 @1 ]+ V
3 v9 E, B+ Z, ~2 I#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
1 r0 J( \$ Z& O5 f" G/ e5 s
2 Y' u. C; Z1 v4 G# ]5 L, B" N' e; C3 P( n& r* l
! I! A/ v( q( x! O- z1 F  L" D
/* assign the tl som board LED-GPIOs*/: t9 v( a/ l& G

  g: p& i3 F; q" D; V3 Hstatic const short da850_evm_tl_user_led_pins[] = {
  }- G1 G! m! v1 v6 v% q  ]9 G# A: R( B! s" C
        /* These pins are definition at <mach/mux.h> file */
, q9 U. |, J: y9 Q8 K6 m- G
3 X  ~) Q& ]/ `3 ^- l' _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
3 }7 K- _2 V3 d; k* @  r6 b8 E9 X. T& T6 d+ l* G# j
        -1; C& j9 s" o9 y: @$ a

7 \) E  o1 P7 j0 q1 F! }0 _};4 X3 j) @3 o7 r0 t

5 t6 h5 m/ c0 t, ^' d8 h4 I
, `2 Z: {" e: @, |# ?' ^
3 R  l7 T; C* y  j6 rstatic struct gpio_led da850_evm_tl_leds[] = {4 d8 o! L% E! ~/ m/ x
: [2 N- F' a  B0 v
        {0 u& O! j; t: l
3 X: p; S+ q0 ^' c# `
                .active_low = 0,
: e0 u4 ^: i6 U
3 q/ C7 B; d- I% ~( W                .gpio = DA850_USER_LED0,- L+ w" k  `6 |; I/ l! d1 x5 s' z
, }! `! I. p: E
                .name = "user_led0",
0 u! U4 `2 w7 L$ E1 z4 a/ ^0 p2 g
3 q  o1 p' k) b8 m+ n                .default_trigger = "default-on",
' D3 P( E4 E# J/ a! Q+ E3 I
( b- }2 b0 y; l# o: A        },4 ~; y7 c& b3 R0 e2 U; R+ |

3 H  c2 _+ W8 Q! a* Q3 f        {4 \: A) g8 p# i
8 @: _" O& F0 P, B8 A8 F" l2 r
                .active_low = 0,* k& t( ]' A5 P3 f8 N5 I

8 j- y& ?! X8 P! h( R. l) z                .gpio = DA850_USER_LED1,: m7 J1 A& R! h% B: ?6 V1 j* t

: P" K6 q' t: y) {8 q# o2 O                .name = "user_led1",
$ P( ^* t8 l3 F4 n* {3 g. G5 ?7 t& g
                .default_trigger = "default-on",
% f3 W6 w; H  o4 W# }1 F7 _0 F1 u
4 K% T1 q) |+ s) g% N% G! g: ?        },
! J$ O3 P& c( R0 W
% Q8 W- {6 ?  T: l+ X& S' I        {
. _* _4 l* h0 b! x, x
* C. W" d% @3 U2 T+ j1 r" M                .active_low = 0,* W# O9 {7 J9 t' f, U$ f* H
( @3 Y1 E. R  O& k
                .gpio = DA850_USER_LED2,
% ?+ g2 |6 x! [
& P" [! t+ i: ]7 v) g1 Z0 u                .name = "user_led2",
1 |6 I! c8 H1 z! Z- G# d
  Z+ N  D( N2 v0 A% P, |1 k# N) |                .default_trigger = "default-on",
5 c0 [+ _" F) {' e7 h
) u9 ?# j# _6 |: \4 n, A# S0 n        },8 J2 V. g; k$ X; D0 b

! x8 a  U: X! b1 Z        {
) Q) ?- k% ~% P, r, L: J/ Z) b6 p, f" c6 G. ~6 C" G& u
                .active_low = 0,/ v8 C; D" C7 x; [1 f

4 ?, p. }& A  `2 j                .gpio = DA850_USER_LED3,
% D4 j" f0 O5 p, e
# p4 a/ B3 N* U& i( q& }$ ]                .name = "user_led3",
+ H( o- K, f5 l2 w6 w4 S' x- i( h( M. n
                .default_trigger = "default-on",  W+ I  ?& O' i
" S) s% e8 \. \1 z
        },* @9 N8 u* ^6 i5 `2 H8 a+ V

  n  Z% |; Z: T: G        {; g7 L; V  ]+ C& `7 n) a

1 Q9 B3 L+ G/ `4 g                .active_low = 0,
- k& R. {" x8 x) m- q/ Y+ H% {! S" E$ ]* p, o8 |
                .gpio = DA850_USER_LED4,% z8 B  g# h# K% |9 L) E2 H. s3 Q: D

7 B5 \- l. [& o                .name = "user_led4",
5 B. A, }; j  L( d
+ q6 d/ |( Y! e                .default_trigger = "default-on",
+ n0 `# j/ V% m6 {0 y! Y/ M; f' V! }2 _% m! |$ D7 ?
        },
2 d) f; l& c8 ^" T; v& Q1 c6 e
/ w& }0 J' ?; v! l+ h' y        {
; P/ ]3 [# E/ G( f( J$ L4 D+ O  N: [& Y
, l# C  a: z& Z# P! z& r* N* T                .active_low = 0,
9 L* q) f: N' X9 U2 g1 z8 _
! v# K+ R- |. e                .gpio = DA850_USER_LED5,/ s5 s- b) F9 L

1 x- K% j0 ]" C% G                .name = "user_led5",( [. `6 S4 u6 m# C- {$ ~( U6 f/ ~
. j' f  ?1 B: s) F$ r( V( d
                .default_trigger = "default-on",
; }: c- h) e# U" N/ Z6 b
- i5 p: t5 q( X9 ]3 M0 A        },; V* b2 ^; a) |# i3 P! T8 F, g. X

; X/ G# `  i, b/ L};
5 m5 S! T% z9 O" Y  j( Z+ R) u9 q8 H" o+ Z/ |- ]3 `# W
) N5 L2 @& F. T

* \4 \  m; T8 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 |2 t5 G+ z& S7 i* o8 t' _8 P# z

- D# }6 N% y, Q* Y4 c9 D        .leds = da850_evm_tl_leds,
' V! `, M6 ^- W" J# E" G: B# u( B; L& e. `& L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# ^8 ^# [; H1 q1 }) H$ n
8 g/ V7 B5 e7 J  O5 s
};
& \9 O& v& x) x' @2 O5 i- B' [# J9 q" ^- j* j
: ?2 G# c2 M, X$ M9 ?: |1 ?0 w
$ C) Z, V! C$ Z4 J0 y8 @! @
static void led_dev_release(struct device *dev)
( a! e( ?3 }8 J  A2 ?: \$ \1 b. a2 n1 J6 W; r
{/ C/ C) ^/ Y+ M6 N1 u" S+ W" q

, Y( ]; L1 \" H0 u4 K};
3 @  u; @$ k) b3 Z! E0 u2 G# r
, g6 _; t; U# t$ l
$ j/ d& o4 ^) i3 a% C7 d
# j2 e5 F! G/ c7 z2 ]static struct platform_device da850_evm_tl_leds_device = {7 h& X9 B6 j4 [1 G' Q0 y
' I2 f& c( S; r5 P+ ~
        .name                = "leds-gpio",0 b& T4 {5 [9 q# q7 \) `

0 a/ i, n$ p' }) t" k( K        .id                = 1,+ q9 l: p1 X) T" B' h* B6 W- x

* I2 n: U0 F( @1 b        .dev = {
% V1 H8 I+ x) Z. N9 }' d
7 I% I  D2 ~4 E. i; K" C% ^& I                .platform_data = &da850_evm_tl_leds_pdata,5 h" U5 `. R! D& `. b, o/ C
% R+ {$ o+ F7 n2 W7 \! c/ I/ p' w
                .release = led_dev_release,3 }$ x9 @( i  A1 T+ z" @5 @  e
) g% k% a3 y& b7 D( s3 e
        }7 Z; O# C8 [' r

5 L% Y2 W4 o/ J* |8 q( `};1 _& W7 v/ Y' ]% @4 a7 q

  @: i. k4 \3 c5 R
6 {; m3 P5 \" ~/ I# E' p+ I7 ], y9 y5 g# B
static int __init led_platform_init(void)+ Z, P# ~) x. O4 p4 z

; v1 p* }/ M9 y( v: I7 M$ A2 Q{, T/ z4 ~/ c8 P* [# N0 H1 t
9 j/ P* r- k. H4 U+ ?
        int ret;# Y1 V5 w( R2 u* @' D# {
" W1 k! F) O  ^6 r7 e
#if 0
, n5 Q) L" r6 M! s$ Q9 K8 }, W( {* Q$ e9 I2 a+ X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" K, L6 Z& {8 P0 V  \  d  c

% B3 A1 h) s" X& L% r5 u        if (ret)
5 a8 s) p9 d3 r5 ^* j# p' \$ W, V% Q+ b, Y" |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 w8 L$ z! f7 Y' O. N  a* |: y8 E6 X
/ A& S9 n4 X- x+ a  `9 _                                "%d\n", ret);0 {! c/ `; l% f; \) @5 q* v6 ]
9 Y' W; R. v/ W  o* k1 j( U4 S
#endif
9 }- K& O" V) I# c# U
; m  T( N. k4 |        ret = platform_device_register(&da850_evm_tl_leds_device);: C7 h# k- ^# D) N; o/ z' \5 y; G
. n6 m: l+ E' c! T5 f
        if (ret)
8 M$ [3 q& h' w, w+ K# f0 k3 g% m6 n! Q; w! ]2 H, k3 y' o" y1 C
                pr_warning("Could not register som GPIO expander LEDS");
* j9 M) x( `0 ]2 ]9 Z. D% ]. L4 }* Z0 n: Y
        else
9 M9 ]8 h  Y0 A9 s1 V9 b% _
1 b+ q* m* T# p7 `* p3 G( m                printk(KERN_INFO "LED register sucessful!\n");
' _: z  W, M: l/ {$ A1 v7 g
& U6 t" e: o! v6 ^  A, O! E( [& E( W+ k  R# d; |

. V5 [4 f+ J, j( D        return ret;. y+ `, }! f' T: z
1 G5 U) E# W! u$ @- V4 Y9 c& j3 d4 T
}" x; [$ Y8 M0 ~% D$ ~9 ?
2 R- Y  v  [0 v' Z% [1 x% z5 o

/ w$ q" l% J- t4 l3 ?/ y
7 E2 {+ P8 z; D9 F% N" ]2 x/ {( Sstatic void __exit led_platform_exit(void)- i, B4 y) K) M/ J6 L

9 c. r8 t9 N5 E2 S9 \* O{8 I: J, A2 s1 c

5 Y( L) G, x0 `8 c9 z, R8 h; Z8 @        platform_device_unregister(&da850_evm_tl_leds_device);$ K) ^5 G  {8 o/ v' R! Y/ N  @; m. K, J

1 H- @2 {2 }: L: `% ]
/ _4 z) d6 |0 Y  \* P4 k- u
1 G) n. D( _6 d4 e        printk(KERN_INFO "LED unregister!\n");
3 s" p3 g6 E* O4 [3 g, D
1 @1 A  N9 d7 S. n/ P  ?}' i' Y& m: K6 U- H3 T
; [# Z* i, q& [* W5 N9 D# e2 C
/ J$ A. k. ~1 @

; G. [3 [3 r1 Mmodule_init(led_platform_init);8 j8 s; W  ^( P! h

! G; [5 F+ f$ K* X! a, X# b( Zmodule_exit(led_platform_exit);/ O& w$ B7 ~5 t, {- Z7 \

6 |; i( k8 h3 X9 U- k. q( Q- l2 r; K+ E& B3 q; V9 B

# g1 W& Q4 Z4 n8 }! aMODULE_DESCRIPTION("Led platform driver");
, e& h% Q8 f- C0 E. o+ o% V3 f* b6 G9 f. X1 b# {
MODULE_AUTHOR("Tronlong");
! E3 }) [) n' b5 i1 b
1 N, ]* x2 w/ t$ `0 {# L6 ~* qMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
) a7 x3 a' z/ |您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。! _- M# P+ |& Y+ o
...

5 M1 W* O' S+ w1 i好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。' i) X7 H- v+ u, \& H' M2 r
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, 2025-12-28 15:35 , Processed in 0.048224 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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