程序的运行问题s - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
- {) B- w" M+ @' U& ~$ K( \' d7 x4 n; y* A1 h+ w! ^8 Y
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的+ H: ?: D5 ]) ~1 R

9 q0 T6 l9 X+ J. H  @% Z之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
& ]1 J8 c# C6 \6 [3 d2 |9 K) F/ ?+ ^% m. A

本帖子中包含更多资源

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

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: W7 J" `1 x5 ~( Y) Z
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
, X9 F) w1 [! e  f  N! W6 u3 `' G% @
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
6 u/ v2 @; X  T#include <linux/module.h>0 w4 k+ l6 D. C% P2 l& ^

$ q- }7 `$ G6 q8 ?  {#include <linux/kernel.h>$ w+ Q  D/ ~! J- U" s8 c: Y4 p

* Q# J) u; u5 _* p#include <linux/types.h>
6 r3 M6 Q6 j+ r7 s3 w5 ]  Z3 P
& b3 Z  Q7 Y5 w#include <linux/gpio.h>. J2 ?: Z4 i+ O! e/ u# ?
! h; E6 u! i8 X7 k) Q6 n2 D5 n! G
#include <linux/leds.h>
; G" K' f8 [6 i  Y3 h) W+ o* y1 O! y7 c& R" f0 u% d; A5 m
#include <linux/platform_device.h>
' K2 S0 G0 K  i4 T7 [9 w# M. q3 M4 K
7 X3 }! l3 c9 }! K" L1 x
  L# F  }' U8 v: s
# o- T, S9 g4 n: S#include <asm/mach-types.h>
" K! P3 Y# c0 P! [* g/ P0 C5 x# h2 A5 M! p+ N, l0 l
#include <asm/mach/arch.h>
, X/ B0 p2 |' h9 E- @: T" L( K( `  i* [
#include <mach/da8xx.h>/ N( s! z$ i3 ~; v3 @

$ H2 I8 r0 `) U! j- X4 X3 r  n9 D#include <mach/mux.h>
  v& F1 ]% U8 }1 ]9 i  @! L+ ]4 ]6 s2 L3 f
+ ]0 R+ e5 `- C

1 a7 {& v. a7 H, X. e- m( V# {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 E. U- T$ u7 T6 Z. [+ P7 h: h; e' X+ N; i, y2 |" R  K* [
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! T6 C% y) l6 j( k* r: y
! c) A# e: V2 Y7 x  P  q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ q' ]6 }3 F  \; ^- q! u* s+ g
' S  t) b& N' }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% }# V, w6 M% q6 E$ |# p# ~5 L% B( T9 m* f
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
$ E0 R" ^9 a7 M9 U1 n. H/ f4 u! n0 M$ Y$ r2 j+ e' p9 _
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
3 M. q0 ?. O" R: w" ?! {3 C: R2 A8 @" ^( Z) {) V) L

& ?5 ?% c1 n7 w! X5 T
# o$ t9 \+ s+ a6 M4 s7 g/* assign the tl som board LED-GPIOs*/
, o; {4 N4 b' n
% }2 b! [* J* M. O" F/ j% B  w9 d) }static const short da850_evm_tl_user_led_pins[] = {
5 h  ^" _& [) l4 Z7 f+ D; E" a7 r+ v6 e
        /* These pins are definition at <mach/mux.h> file */
0 u4 r$ B2 b" a& t" N: C  x2 }. h: g& O$ P8 F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
4 O2 U( f8 H2 r, S7 n- @- C  y+ Q! l0 i3 m5 z
        -1  t: W/ {6 O3 O/ x% e1 i
! J4 }& `( r$ M, c
};
) O& @% ]- @2 u* P
' x% N! o0 Z) A! d/ r* x* l: c6 f& P) l$ B, [
/ Y# u* U* y& I
static struct gpio_led da850_evm_tl_leds[] = {
+ g( {* g. {- k. `" m: ~$ I* t% w+ s
* Y6 E: c* V6 U/ P        {
; N- Y2 q3 P" F; [+ y( A' @$ S2 i: z! y- s6 [/ F( \3 z
                .active_low = 0,
; ~, n% J  G( w) j) U* m$ N0 F
" l6 _5 V) c, n) T) d2 X                .gpio = DA850_USER_LED0,$ [( K( g/ X5 c; \
; v! N) x" ?  @! q5 _' J0 S
                .name = "user_led0",4 ~: g- X& q/ W6 c
3 ^1 @* x% `" G" H! a
                .default_trigger = "default-on",
/ A5 f, ]* a. e! T$ C) T1 |7 s7 P8 |4 b
        },+ I* u$ e% x* h( G  @; M- }  |  D

! R  l7 n; x/ q! w7 I        {+ b1 R; N5 K* u

: _- R; @& Y: L* e- N  T                .active_low = 0,/ c; b& c  M6 ]

0 N& X7 g- z/ K0 i/ k                .gpio = DA850_USER_LED1,
: V8 j/ a6 b" c( I
3 ^9 L) y* r, `& A1 p                .name = "user_led1",; i$ o6 I% k  w( s2 N3 t! E: ?# j
# p: l' }: Y5 R: T
                .default_trigger = "default-on",
' ~! U# V1 X4 U( G6 V, A0 C
1 K) X, P* h; `* @0 ^7 Z5 n& ?2 J        },
6 _' K: o) v1 {& W  n# L
7 j  B$ X) x- y& ]2 b5 W        {
: f7 n* b6 K4 p
. f% z5 }/ r- x" i* Y! y                .active_low = 0,
8 F/ i3 b3 r$ F1 j! y  P: R# u5 I. X+ \
( ~% C" Q' C) q! V                .gpio = DA850_USER_LED2,
$ }. E- D4 R1 @& w) a  [# {* B& G+ Q9 w, j: H
                .name = "user_led2",# @# Z& G' [' W9 T. o- F
1 B* Z# r( p5 Y1 N; `! ?; @
                .default_trigger = "default-on",6 J0 B3 N# Y4 E# D  B

# p; ]. T0 p; \2 C/ N9 N6 l        },9 q; m2 x# K7 o$ i; u) x* N

3 S6 l! W- ?% L: E% d8 p! q        {
& |- Z5 ?" o. n# L. P3 r# ?. J# M2 ?% Z
                .active_low = 0,3 P. L7 @/ F4 Y* S7 L. T

- ~0 T; H4 ]. B# t, S3 D7 L$ O                .gpio = DA850_USER_LED3,/ a; _6 @( n  e

/ d3 J. q$ V6 y- V                .name = "user_led3",
( D! h6 |4 B, c. W3 P+ G8 N: c9 [& ]; z1 O3 J5 h  ?6 Z6 w% h# [
                .default_trigger = "default-on",- I( E5 [: M2 I/ u' ]. T4 k/ G

( F+ q; K) \2 U& O  q  z4 W        },
: M0 w: w" a3 z0 f  w: r% r
% c$ E8 Z: e& q  x        {
8 H0 X, H$ `0 U, r6 d: a
/ c* Q! T8 c) k+ I- y9 i                .active_low = 0,4 M6 i3 v; X8 D" G! n8 R* z
, f! K9 V6 y5 x# y' l# C( \3 A: {& q
                .gpio = DA850_USER_LED4,9 f6 ^& g; p5 R5 I4 W5 P

( d: p# [7 W) J/ Y0 [5 |6 G                .name = "user_led4",0 k4 l3 v4 f  B, B, S& }- `

: t( I; ^; p3 M4 T' Y: M                .default_trigger = "default-on",6 X& x+ D  {( p  H0 Z' r+ o4 E3 r
& z* F& J: Q& c- a2 |. O$ M
        },( X/ b* N+ C; p7 N5 H

+ f' [- Y! q. J7 P, o        {! Y2 @' X$ t# ~/ ~  @
5 V/ b8 l4 }$ w+ |8 v
                .active_low = 0,
+ t) r- E" V$ [& P5 B1 M8 K' o+ O
                .gpio = DA850_USER_LED5,
6 F9 Q/ z' K8 k) n2 J
' R$ I. K" [  W3 _# s                .name = "user_led5",
1 b$ Q. \3 x- s+ D: h1 T0 b( B8 M0 Y# |7 m! n
                .default_trigger = "default-on",
6 |( F8 H  O: D1 a# A( b- L( O- O
        }," F; M( Y1 h  ^1 p- @& q0 q

$ T& s8 ?) w$ t7 s7 R% A9 J7 N};2 U" e- _( D2 v5 {- s
+ p$ j) y" ^$ |4 s4 I. u7 O

9 E! Q0 p2 \9 r; U; ~& V" Y, z
4 W0 y; z; A! r$ L$ A4 nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' I& {4 z3 c* N5 J$ \# X! ^
1 Y1 M, J+ t. m- h# t9 V( H) N        .leds = da850_evm_tl_leds,
8 L  N1 `& U. X0 m/ A5 A9 K& M  l2 ?2 E  g- b7 B! O  q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 l* v, g) x' e/ G0 I: {

! L) R* a2 _2 y& T, E};* E8 a/ A, A# h& N0 }/ k/ M  c# k

) G0 T" ], i, f' {3 a: V% m% R! l
, F& s7 Q8 Q, c4 l' i. N6 l9 ?8 C3 D" F# I! g2 v
static void led_dev_release(struct device *dev)
  S* j3 C  @4 w9 P& O7 Q9 ^$ d' o
3 h# ?# U: f. j6 V! Z{
* O9 T$ Z* t, j0 P1 n6 U/ Q9 f: |# b+ a3 z( f
};
% K4 D7 B! d/ W. ?. t7 w
& s' n( |: n+ g9 i1 W9 a
; n7 \. t: p" v) K! _1 s3 A6 `4 ^; U7 l, f- `, E
static struct platform_device da850_evm_tl_leds_device = {
, Q2 y9 ?6 d5 l0 s( i/ i+ e5 r8 |" s5 D
        .name                = "leds-gpio",
1 }+ o/ j/ B" w  g* m8 a. v
$ N8 H( r1 s8 g. A" d        .id                = 1,
! R! D8 Z6 M( V. U! l3 Y4 A6 G6 ?4 n  |" H( M# Q5 F0 \% }# H
        .dev = {
7 a+ u$ p" o7 [+ Z0 B4 {. Y! ^- Z" I5 ]
                .platform_data = &da850_evm_tl_leds_pdata,6 c: k& S3 t5 @" e" r

" ~# X. y5 }6 G2 |9 t% m2 {2 Q                .release = led_dev_release,
; {$ p9 s2 ?5 w1 Q- r" A( e1 R7 r1 h- T+ h% L9 o/ [4 H9 R
        }7 o% E6 M& v; B6 o  e

- c: u( q0 V6 j$ y5 G};* d$ w9 D" T) o/ P
! h: d7 C9 i1 h, L& R9 ?1 ~% i+ n+ h
* l; x" N- }  a
9 {' Z" C3 d7 N- v
static int __init led_platform_init(void)
+ i' Q7 H6 V- i* Q1 w( Z1 {$ r( E5 p9 l
{6 K; H+ n: M% Y0 p
: s; G  c) n  ]5 X3 H& o
        int ret;* r8 j( P9 O. I, y- y* i

7 P4 `0 @( v  }- I# L: g$ f; V#if 0
2 C( h, i6 v* M2 z" ~5 Q
- M* w( l' l' `/ J$ {* A( h0 Y1 [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 \, i# E# h5 A, V4 o' n, h8 v+ ~) e
9 c7 k1 |; _' g$ u5 O        if (ret)! M0 O7 {% f% D. U  ~
$ [8 V, Q4 `+ I, n* @: |/ f- `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 C/ O: x1 E, F8 g1 I" ?3 f8 W- w4 T8 Y' }0 }
                                "%d\n", ret);
' P" G/ {+ r3 v+ n7 X/ d; l. p  j2 ]& x! H
#endif
% N) ]0 i' f3 h2 X3 X( k& V: }7 _9 ]5 Y2 d
        ret = platform_device_register(&da850_evm_tl_leds_device);) E  ~1 K) P* s, M

4 ]) P, p+ F( V7 D4 u        if (ret)
- Z9 A! w6 W( E" H* i) W
4 N0 T) J' Y; V$ a+ x7 ~                pr_warning("Could not register som GPIO expander LEDS");. h# C+ K% U6 \) Z1 ?% B

. w# k8 H) b4 W/ d1 N/ c$ I        else) {% {/ u/ ^5 F8 R5 `- K. W0 o
0 g  x  X( p! N! _# L2 i: A0 W
                printk(KERN_INFO "LED register sucessful!\n");1 y! {( D( f# G# S

* t. q' }7 n3 M9 r& d
' `# @: T5 j8 x! }* q4 M! L* E1 ?2 E3 E8 n
        return ret;
8 f5 p; K% B1 F( W  W, M, G0 f# `, `% ~# k2 ~& n
}
/ D/ B! ?3 n/ B3 G4 W' p2 s
2 F: g' q7 L8 O2 }* H5 X% m
$ k! e. K2 `6 M/ F3 I9 e6 N& y8 i: a; G: Q( v8 I8 m
static void __exit led_platform_exit(void)
3 V# M% P' W4 w3 |9 r  \+ n9 ~; v- y# a0 Q" T
{
7 Z+ w4 Y- W/ p0 H
( X- x* f7 t4 [& h        platform_device_unregister(&da850_evm_tl_leds_device);
: {1 m2 L. p0 B% S3 n; \4 m2 x- A4 _9 i
6 ^. D7 J# h6 ?) }. ]" B

( b! T1 r) y( W  V        printk(KERN_INFO "LED unregister!\n");1 S" i" q; O' D2 `) n5 E! M
2 @; n: Z! R2 V& A3 Y$ j8 i
}2 |6 u; _& K2 ^3 r7 ]/ l" @

: ^; z) r0 @% }) n1 |+ u3 o- x
# d; j3 E- Z9 q: J: H1 W1 ]) k/ G8 k
module_init(led_platform_init);
5 Q; Q5 `7 M' m8 m# l4 b; y: C9 z& i% m
6 \  G; G& P( Bmodule_exit(led_platform_exit);
4 v9 u) l4 b4 W
! O& L* \0 E: ^2 k' Z. M- _4 @7 b# K# C
( ?/ d$ S1 B" }
MODULE_DESCRIPTION("Led platform driver");6 E% |# k% B+ s
/ _& @( h  e) d2 Y2 h
MODULE_AUTHOR("Tronlong");
' O: ]! F: n- ?
9 F2 B! g6 {. N$ E$ r& SMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
$ T: t5 X' n: `+ u9 d* K. N

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32) [, E) h( Z9 j5 z
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
/ u! t" p: A8 {) ?1 |$ F ...

% E  ?+ a( k2 `7 D4 {好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。, _8 x7 _2 F; o0 }7 ?
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, 2026-2-7 08:47 , Processed in 0.056817 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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