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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 6 J0 U7 N4 Y/ Z* B

! s1 u; t8 V& e: f" ?; o8 i请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的# B. x6 M5 `$ K' k- D2 j

1 t2 u8 ^0 m* z+ {之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
% T, }1 r6 E  L' @( x+ p+ G
3 R- z, y+ z% Z" J3 l

本帖子中包含更多资源

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

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:144 f8 R  Z/ Y# J, P$ q
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
3 c8 H) x6 g5 B. T/ j* ^
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:+ U! R# R1 U# w) \
#include <linux/module.h>
* w, p* u! N1 G1 B6 F$ C2 D8 t
$ L  q6 I6 ?, l" C. i#include <linux/kernel.h>
. ]) s4 Y8 ~. d' {3 h, [& E& o
* ~& L- C* {- F#include <linux/types.h>
, [! I/ A- G- D9 {* g& L# t7 O# w% U2 M7 Y8 P2 B2 l2 M
#include <linux/gpio.h>
$ m) ~+ T4 u0 Z, w1 v* Q0 Q9 U4 H; N/ n  `7 ?3 a, T" Z' E
#include <linux/leds.h>: w+ A; S9 H/ i7 l
+ `! K1 O( [: X5 m% P
#include <linux/platform_device.h>
8 X: M7 }0 i% K9 O6 u) j; t! N" O% c+ N
( R8 `! H5 r' V# C+ j

9 f/ T5 A  M1 i+ I( }/ @3 m#include <asm/mach-types.h>6 d. J- c' @) ~

( R2 {( B4 ^3 F  `) O% E#include <asm/mach/arch.h>) }  v: p: D0 X# G/ a* w3 L; ^, Y

0 S) h% s- _# Z2 M#include <mach/da8xx.h>
$ L) D! n& h: n) Q& Z4 E6 l- f# `: q
#include <mach/mux.h>
6 \" b4 [; N3 l# o0 i* {; Q: @! M3 h4 O3 @
0 n1 P$ j; r/ u: h

$ N/ h, a8 x. N2 g& ]- B8 l#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- `: R9 ?. H9 T0 N
! F1 _6 O# {& v* V* {/ D! W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ o( P3 c1 A" ~: l5 {  ?5 i! v
4 U/ n" A" b( }! y+ U& B& H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& q# ~+ D& X) A2 Y5 R2 i
- o+ S+ h1 L4 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 b2 ^3 G8 W9 L8 I2 E6 Z+ T! v0 h0 b* \5 [3 v" \1 k* Q
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)( J- J# s) ^2 x! a- ^
9 e: |- {' D: Q# ]4 {3 a: k
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
8 M# D- z- n' }2 b6 _/ c  G; A7 _9 e# [2 ^# r

9 Y, F# e; W# V5 f  p( w
6 h% v% X# a: b5 x) a' s/* assign the tl som board LED-GPIOs*/
3 n; @& a/ a. C% v/ q- o- c- F; i* ?
static const short da850_evm_tl_user_led_pins[] = {
, K1 k5 X# ~/ q) f
$ z; j1 l' n, i- }4 p% V4 F        /* These pins are definition at <mach/mux.h> file */+ R  p7 M, N/ j2 A" K( X7 N

2 W9 _! {4 u- Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
, {: W; S/ X4 S
, }5 p. s+ g, h  U        -1* d7 X1 F7 X  w! x" A3 {0 o& p  T: G+ g
6 z& H; L+ X2 |' p
};
  L) {+ v. q& D: I8 R6 b
" A5 O6 p8 a2 G8 S/ g/ Q2 y( u3 O: r% Q1 t5 R5 q
( J. y0 c: y1 r& e8 F+ B
static struct gpio_led da850_evm_tl_leds[] = {
+ F8 S4 m+ @. h  z- K. b8 K3 g  i$ F2 a8 {
        {; n8 L  c* \* Y3 ?; U2 F
" J/ E' Q  X" X) f( e! R* D
                .active_low = 0,
% x$ _! y1 @5 ^% j$ n
3 I6 V! s3 Y+ n: g: |, K: t' s                .gpio = DA850_USER_LED0,
! l# i/ [5 T7 M# \2 Y/ R! f, j' Y6 M
                .name = "user_led0",
0 n0 P; |. K6 ?; c0 _% |- P* E0 y( v4 e' Z: ~
                .default_trigger = "default-on",
: Z' K3 j  B# `% s" F+ g3 S) U4 U% g+ t1 v' ~8 W
        },2 E: [- [1 }: G4 C# @) y' W
' n' B2 [# ^' J6 A5 a
        {: @8 N8 b8 ^( K7 l1 J- q- w9 K, h
" p! D- t" V) Q
                .active_low = 0,
0 t8 ]3 q: c" @
! z# s7 \; e' j. `* t2 T2 d  {                .gpio = DA850_USER_LED1," ^# e/ J+ f4 j4 H; R" C4 _
  H3 N+ s; r3 ]
                .name = "user_led1",
0 C8 U" S9 P6 G. G* M  u8 s# d$ v  _+ T; h
                .default_trigger = "default-on",
2 `: B: i: H5 }# v9 x$ d5 k, O
  D* e  c, m0 W+ C3 X$ e        },2 |2 c5 ^/ w$ c) n$ g, v

3 x* m" ]6 U) K% ~  K4 r( `        {
" K- I  |: L! h7 P6 Q1 I7 K/ i, w& E6 q* K
                .active_low = 0,* H0 P4 O) p3 K( `: p, ?. f& @$ D; U  d
& l( e) g# S4 g' T9 g
                .gpio = DA850_USER_LED2,
, P; r3 x' d) i3 k9 f" o5 g. H# Q2 S) c7 j" p! W
                .name = "user_led2",
; O/ f! R$ v' i; g, Q
. v5 d- O2 ?3 s1 j                .default_trigger = "default-on",
# p6 D/ J9 Z- ^+ w9 q) s. F/ |8 i
2 M7 B$ \" k3 G        },+ v* L0 o+ t8 }& T0 }
" v; O* [% y% f6 ?) H: ^. m
        {
! ?" `& l& Q" j6 A; c  d
; L; M4 W1 W% j: A$ D                .active_low = 0,+ }% F  |1 h3 o5 H/ C; {9 J  ]
9 A7 A- Q( h6 M  `7 ^: Q) h
                .gpio = DA850_USER_LED3,( w8 Y, B2 U+ G0 B

4 g! X5 }, a) x! A! h9 M                .name = "user_led3",! _  \6 c/ j% v; C7 w9 N9 u3 N. q+ @
+ o& d- g5 r! b; P& i. Q! C
                .default_trigger = "default-on",1 p6 M3 ^3 Q4 Y+ X: t

# S# o8 d# `1 Q7 K% `. D  v        },9 ?/ ~# D# s# Y# u7 N0 Z1 a
: l) U5 E- U) D  I$ n
        {1 i8 N0 f6 Y9 C, c
" p: T$ W8 d% z2 E( ~
                .active_low = 0,
! \3 H- R- n. g6 u+ z) }) Z7 v! K8 E$ i+ G% e$ T5 c% C9 W0 s, j
                .gpio = DA850_USER_LED4,: \1 P& [% X  f! `0 {- F

: `9 e* w; n/ G, J  i4 B. q1 M                .name = "user_led4",% L+ b) F! K  L+ [3 a" ]. Y" [
7 e8 T" R4 T2 b+ ~2 r
                .default_trigger = "default-on",0 i  s, o) u9 J
9 i3 o* \1 J$ w* n8 q# z
        },
" A1 [* M- |3 B2 t+ Q. `% M: w
4 L1 Q- ^7 x- Z9 E2 A        {
; g0 S. e$ S$ F  M; t8 B
' U. b% k5 b5 y! t$ M                .active_low = 0,
6 A" z) v% `( w4 {9 q
" A. h9 @6 h' f& n* p                .gpio = DA850_USER_LED5,
- r* K6 u3 i$ F8 Y/ u, J& r- ]* L/ s) D7 B- P
                .name = "user_led5",
4 z+ S2 v6 h8 y! {# O* c; c9 H% g. R% h1 U( j
                .default_trigger = "default-on",
/ c0 h; S) ]4 @+ V) x$ A0 [) J; h' `8 l) ?2 \
        },8 g1 w( |% V* Y/ P. A
) S  |  q1 R  l; k, [% w8 t
};' }* B" o; k! H# X- v( ?0 E

' l6 ~( h/ D0 T4 n, R
9 K% q6 R/ `; B& d4 B6 X8 X3 m2 C6 k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 _9 i  \( h  J: N# I
) ]: k, y% W5 x! ^        .leds = da850_evm_tl_leds,  Y0 H1 o1 P, e& ]3 T
: b: z$ L9 g( f
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% e9 j8 ?7 h( ], A3 c8 [1 c; \9 s4 v5 q3 b2 a. y/ Q
};$ ]! B& P  Z3 \1 n  r) p

5 z' T4 x4 \% ^1 |/ H
8 T! ]' [" {. p9 s/ t  m" W0 e# C* F3 @3 B0 k
static void led_dev_release(struct device *dev); P! c0 r: W- F
) u; G+ ~: V9 V8 f8 B% Z
{9 H6 [+ x% e4 E5 u5 _

% a; G3 N9 g4 |- D3 C; @- n8 V; P" O  j};
- d6 u4 H3 ?9 Q4 E3 [$ H# g" [& L4 v

" m3 `! q5 `; C& R3 j1 H9 u0 p
9 Q  i( a4 v; V/ vstatic struct platform_device da850_evm_tl_leds_device = {' P7 u. v8 X4 }) U4 M& T. q7 w# k- ~# P
, c* Z4 D  V, d0 [& ^4 `
        .name                = "leds-gpio",
; v( c: c6 m, ^- g
& l: u! l' J* m4 \" [( H8 Q        .id                = 1,
+ g3 x1 o2 t8 r3 z
0 v5 u3 E* _5 q" \        .dev = {
3 p. F6 m; S: H3 w1 N$ {- c! }
+ Y2 p5 ~! W' \' A1 G0 N                .platform_data = &da850_evm_tl_leds_pdata,. n) K% l5 _9 p. X% _4 P# ]* y2 P) u
" |) h7 C: g3 X7 [0 z% k
                .release = led_dev_release,/ |2 c2 `+ Q9 C6 N" k5 G2 j! _5 C# H. [
  ?4 V0 g: A/ C/ j6 g1 C& t8 ^
        }
1 f$ ^& y3 ?% C* J% n  ]2 R9 z
: q) ?4 U' e) ~8 ~! S* R& P};. s3 k. j( X3 e# q" {
6 R- _  {7 f) `4 |# }7 W1 T

8 \0 R$ N' j& p% {( Z
, P/ I, q/ f+ t9 wstatic int __init led_platform_init(void)
; _$ ^. z9 n- O% z9 k6 j$ f
* z3 r0 ]. I! V5 a{2 z& d' l8 z$ W
5 J5 G/ S/ j8 {; f% B  X+ y
        int ret;
  s; l& g# U' u  a* i1 L+ g2 z. B; s( Y* }' G. Z% W2 T
#if 0
; j9 R0 n. ?' K' v: E& l8 s9 A
  M, K% r& H2 }; `4 L& q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# n- \! N3 ]/ u+ }) ^, I

( C1 W% {; `; [  L6 C# L" {5 K        if (ret)- n- P) c* ~+ x% `4 M9 I$ R
# r6 I; |. M# _3 v  B2 a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 n  i, s4 s! t  |  c% A. ?+ _$ p' R$ ~4 e, p. p
                                "%d\n", ret);% z8 ^# {* [; b. }
: c/ a1 }# C2 c+ A, U# d
#endif
7 s- f4 B7 P$ ^
" c4 O/ V# g' I6 G        ret = platform_device_register(&da850_evm_tl_leds_device);# k+ {7 Q9 `1 D. F2 f

: u5 l  S; V4 _3 g7 `        if (ret), Q/ j5 c$ n5 u2 y
4 T0 a) S3 d4 |8 F5 l. D, k$ c
                pr_warning("Could not register som GPIO expander LEDS");
% i7 O$ i4 N% e- f
$ j5 f2 N7 G6 d9 p- u$ Y        else
* G* }; y  g* D6 ~( v- X, l7 ~5 F" ~0 i
7 L0 `5 m) h3 g  j/ `6 [                printk(KERN_INFO "LED register sucessful!\n");
/ o  a! V; G8 g: x* T
  I. \  Y7 D7 R) y5 D# `& J0 g" Y' p' w3 X! Q$ ^: Q: N
) l; m! g# ]# s0 i! r% l5 `4 z" I8 K
        return ret;" J3 e. \3 M: [# C' r4 A$ x
! }/ X& g' s5 q. c0 K1 s, s
}& Y0 c* j6 Y2 g( ]

! W  ~! T+ Q8 E- e5 D
& _7 N1 D. u9 @& E! K  x' I
; o! u* c% x% \% Ystatic void __exit led_platform_exit(void)9 i4 w" I3 c3 F# F0 A% r4 q5 b
6 h; d* s' F7 n+ y* Q
{7 \: I7 Z& U2 _

* V" C+ Y* S' y( @6 r! s        platform_device_unregister(&da850_evm_tl_leds_device);
* O( r: U& S  s2 k
4 R8 t+ X$ V6 {  a8 A$ L0 `3 _/ \& N

, K! [( z; s& i$ }        printk(KERN_INFO "LED unregister!\n");
$ U) v& F, l8 \2 `6 p- [& g
$ i3 `4 L6 C2 h& _5 j. X& I}4 c8 K& R7 N1 s/ i

2 g) p1 ?% M1 v" ~
; D- Q5 [" \, z, [5 J2 _2 f- S6 J& ~5 z, t0 i0 i% `5 L
module_init(led_platform_init);  C& ~/ E1 C1 e) a% K+ D* N
9 ~/ K6 ]1 e& B
module_exit(led_platform_exit);
7 {9 Q; `0 N% Z/ ?& A3 U( E) Z( o( V! v: U9 c5 e% e
8 q* j$ Y: `1 `8 A( v' x. x

( `  X4 |+ m4 g) V9 A8 Q( t* YMODULE_DESCRIPTION("Led platform driver");& L5 {2 u- b' i# o: a

& g& V& R/ v8 C) I* d8 [MODULE_AUTHOR("Tronlong");
! A- x2 S# ]4 |5 f, ]: d# v3 [
- J; @3 r+ b7 I/ c* X# b9 YMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
7 X' E( I$ Y, H" W您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
7 A% A5 E4 P  R; z  U! V0 | ...
9 E. Z* D! @4 @5 t9 F
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
# K" {& ?% e; qhttp://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-4-29 23:53 , Processed in 0.045218 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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