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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
6 m9 B  B: y  D% s+ {' @# O+ z* a& h+ P% Y/ c+ T/ i$ y
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
3 `1 E& d; N+ G- k8 N" I# U. H( n& J' M! Z8 ^5 o
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
2 V; W; \: L5 D3 T
0 O2 D1 B; B8 c3 v( t  n( [! V

本帖子中包含更多资源

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

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:149 ~  a( r' J7 G/ j! }7 c% }. O; n
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

+ y, ]* k, M: @9 R3 s; r" U我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
* V* p4 ]9 F% p" `& ^: n#include <linux/module.h>; Z6 t- m' e* f7 M  G

0 H; [0 W5 F' S- k2 u#include <linux/kernel.h>6 F+ f' r1 C& y& c
: P! V+ w0 U3 X! v
#include <linux/types.h># O5 s" h; @! U& T  I& l* c3 X
9 I1 Y! }4 ]9 s' |0 {
#include <linux/gpio.h>
* r' ]8 L4 j$ i+ e+ _6 E4 a9 j1 }& [4 R/ h# [6 {+ R! q
#include <linux/leds.h>
3 w6 \2 Y* _4 J* o8 Z3 N. G$ S, t1 p% e1 d2 u
#include <linux/platform_device.h>
4 R4 L7 [0 j: U3 }& `* q* t* U5 Q

) E! E6 h. s& B2 u3 c7 i
' c( s  W- k& s" B4 ]3 i#include <asm/mach-types.h>* d1 l; v) {. |: u/ f" s

0 j# x( [, w0 |" F6 j" E& o#include <asm/mach/arch.h>; t  @) U  S) F* }* y

; D4 ?: H  i6 l& f#include <mach/da8xx.h>0 P4 ?, b0 D+ w! {" M% V

3 i, j/ S1 @( n3 ]+ g#include <mach/mux.h>
1 [% V! f9 I8 l/ f- |* z, J6 q

9 }0 G. @- ]# j# ?7 i) a4 r  K' y+ W% d; v& e8 f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) c7 q8 u$ i& C3 E  F8 \
, x& k8 O* g7 Z, D- x& \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& b* e/ t5 `' F+ {. d9 m

: R8 k. L" @2 r- B) j5 U1 e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 Z  J' t2 s/ X% c/ [/ J5 J  M+ N7 t/ P4 w; T- \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 R. _: U6 c6 D% N3 K- J
) Q" N* S9 |6 R6 v1 p
#define DA850_USER_LED4 GPIO_TO_PIN(6,12). j4 r. `# z# Z1 ^9 z
. y  f; D$ W) r0 w$ h& n+ `; z" Q8 v
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
# R8 E0 u# y- s& Q4 }. M' M3 M( M% Z+ B, z: ~
& O4 t3 q: O7 E: Z& C" {

2 u1 R+ s# T7 S  _. E2 V. \# w/* assign the tl som board LED-GPIOs*/
# E7 R& l* z% B$ \4 V
8 |6 j1 t+ Q7 ~; ]" t: D2 p9 ystatic const short da850_evm_tl_user_led_pins[] = {7 \: D. s& Q) Z5 e' o

$ C- R% h. [) D2 J6 x0 }        /* These pins are definition at <mach/mux.h> file */
0 c# h8 \- [8 Z. e8 F( i( b" _  D( F" {' o$ x& s' a
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
) w2 @. s( o- F4 o1 M3 U+ Q; K. z3 p8 A7 Z4 w# b8 m
        -19 v8 b) j; {: }! @
* |/ Z* C: L  A: s
};# y- {& J" W" Z/ O
8 ~# m- w. {. Q0 ^# R3 M

. t  X1 G3 F8 P$ }0 B- O" ~% V0 T7 ?; e( f- A& m
static struct gpio_led da850_evm_tl_leds[] = {
6 t! c! L# r, o# a* C/ l4 A' T
6 }: J) }/ |% l; C        {
+ D, ^. x* I) Q. s$ I- \0 c8 u- I' S3 _
                .active_low = 0,
+ E& m# y* L7 F, K8 ]3 h
! {0 {! K7 k3 j                .gpio = DA850_USER_LED0,3 F5 ]3 G! F0 Z# @
0 m; L% m! S1 O( q# V" H
                .name = "user_led0",
3 A; R2 {, r- X) k3 `7 I( e  v: ~+ {$ J
                .default_trigger = "default-on",2 G; a, \: v' |" ~3 b
# X( I4 |6 }5 r0 ?
        },
% }+ @0 N9 G* X: Q
( L$ D9 u$ w# d! [' m0 e0 }; Y6 y        {" z# v  p1 [! c+ {

# z) L3 Q6 U3 `' M5 v! t% k. E                .active_low = 0,
/ \5 @3 E1 d& ]. C1 a
" ^8 _4 E$ D. M2 z, G, \" y2 C                .gpio = DA850_USER_LED1,+ I$ d4 P5 Y& B" L7 h  y
- R% t6 `- W) F  C
                .name = "user_led1"," b/ G6 A( Y9 D

8 X; k( j4 j( g8 s                .default_trigger = "default-on",
1 Q4 j3 P! j4 }; d  }
! n% I8 y1 }2 w; Q5 H) r, Y& y        },6 M' k! F6 M6 B; [3 b$ ?
6 W2 o4 c1 [3 m: Q, }8 n; r% ~
        {
( N" J  A* D3 N1 R: U
$ ]8 q3 w6 h8 e. u1 Y                .active_low = 0,/ S) X( q4 m1 ^# B  @
$ O& U2 i6 e- X( y
                .gpio = DA850_USER_LED2,+ Q# }: ~; s4 K! T
. M4 w5 v) e9 D3 G5 b
                .name = "user_led2",
( ^; o9 [  P& }4 b7 ]; m6 p+ Y1 j5 c; V. u! \, a8 f
                .default_trigger = "default-on",
1 h& k; M* Y6 W& K
: r0 Y2 x5 Y' J, C! U+ m        },5 X( I+ {6 e: I$ U4 l4 [; V& O

0 O, \9 b2 o' d. x8 t        {5 d) ?3 p5 a& `9 w
6 C7 Y9 Q+ _* J  v. l
                .active_low = 0,
0 J5 \" r6 [" m
( H1 L6 E: w* z) I. N                .gpio = DA850_USER_LED3,; G) w0 j4 C" A- \
# |8 m+ l3 y. R) f8 `8 S, B
                .name = "user_led3",: Q. V0 V% d: O+ t0 {0 a# U
/ @0 t# s" A* V1 }/ ^4 y7 Y
                .default_trigger = "default-on",
; d/ c, I% X2 L* w* x+ H
! E; Y7 |' m0 _3 }9 w) Q2 t& l        },5 I+ {; |, m- `8 S2 J6 H4 a
' l; @7 v" P, t- x% w" y
        {
) L9 S2 t9 z9 K/ M# {+ J) ?0 p9 T
$ Z0 g! ~9 c& e. D3 W2 j                .active_low = 0,+ K/ A; K; I$ p" o

) d, I+ f5 A% D" [                .gpio = DA850_USER_LED4,
# @2 P; W0 m$ U  r0 W; r
: m; q. N2 K" v$ Y4 B7 c, |7 v( A                .name = "user_led4",
( E- G1 J+ q9 ?7 Y) r( I7 n$ J2 B& Z$ W( X( Z, R
                .default_trigger = "default-on",
6 i  \) y; b+ m+ n& y, w$ M* u& q: n5 v9 j! @4 ^
        },
2 [( e+ B4 i- p5 t
/ m  f$ f+ H% O5 T1 W* f        {- y. x$ b2 a5 Y8 k: T

7 r/ B% i( ]! P; s) ?                .active_low = 0,% M" J4 [  f/ c1 t
5 e) L/ {  ~& T9 G
                .gpio = DA850_USER_LED5,4 F! u# n. k/ ]3 z8 h& F; v

. [9 l& A9 q8 m! l9 ^                .name = "user_led5",
& A; ^3 t& p9 P# o% F8 ]1 O1 S3 i0 f( ]7 B6 F3 q
                .default_trigger = "default-on",' j1 U5 \9 i/ l+ g5 H+ T9 w; v- I

3 `  e& E3 u3 x        },
5 L  N1 @" G6 @0 \# h) A# Z% e4 z4 d6 m1 @1 H: P9 S
};% D1 N, m) R. K9 B" @2 {
! P* z  C. u! i$ s0 L0 r
9 i5 K! a8 m9 E; h2 \9 x

: G$ g2 M' o: x6 C5 e, xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ Q4 ?7 l5 x/ u3 i, l, d3 Z
  o2 d8 r; I1 a8 r        .leds = da850_evm_tl_leds,
2 K( Q* x  X; ~+ d8 f) C! m& m2 r
2 ~3 Z: e+ H( w2 o( K4 s        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 w+ l, m( E5 z# V5 b! j3 G

) F- }- j. ^! C) a& B};8 B: w4 b0 _) O$ x# {( E
9 r; _& ^. b7 b/ [' d

0 u$ N5 d, R5 |7 M3 h9 v1 {/ U
; Y; s+ M$ r, e6 o8 J; Y; g* t7 rstatic void led_dev_release(struct device *dev)3 s/ J' G9 |" J  M4 w' R

* ]0 ?( @2 w/ z9 A{
: T/ b4 w' T- z! g6 E# r2 c+ Q- m% f
};" y2 s- N" V7 {2 m0 b6 U

- Y  R, E6 N" h9 c+ N
& B( n% P4 e. Q: Y0 q
. O! O) P; I4 ?, S* A; {' z0 ostatic struct platform_device da850_evm_tl_leds_device = {
/ ?% _9 C- E/ ]- u" \4 r+ A" Y! N$ ~) h. [3 J
        .name                = "leds-gpio",
1 h- M7 {) h( N  t! v! W* u
. ?, Z# M9 y; S5 ^. K! ?; [        .id                = 1,
( h8 o" k7 a3 O' G) r; [! `- Q& r* S% p- z! \+ K
        .dev = {% M0 e6 t  s* Z* B6 d1 y( |' t
/ v( q. [0 e+ D3 c. M
                .platform_data = &da850_evm_tl_leds_pdata,
  {5 Q( W6 q2 y( Q6 s* w; x1 c" F5 R
                .release = led_dev_release,# a- K! h7 Q* R' h* ?" J. Q+ ?
6 u8 r( J3 q/ p' s
        }3 x# s- C* N8 D5 U: i! y, M: F

5 K! C  k" L/ U$ p+ f  Z3 A};
" r; o; `; |7 g8 ?1 s
5 }7 ?2 \6 r8 F" O- q/ i2 B. ]4 j8 t' C( _6 R
3 \% Z2 c+ J. S0 C0 e" e
static int __init led_platform_init(void)
  d7 l/ H6 T. P+ c( w7 p$ s+ R1 e) e
{
( g; Z! ?) y. t& R
) A+ K' N4 v$ ?  U        int ret;7 X0 f; m  e+ s, P

" Q; ~! F# s  L* l8 s#if 01 V# e4 Z* c. m5 r, f3 L

( T  z/ G2 [5 w4 x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% a$ J' s8 E) a* \4 {
+ ~8 q* D1 q5 m$ d0 Y
        if (ret)- X6 L2 Q) _$ \/ `
$ }) G  I/ g- O' @$ }5 U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 u1 n$ R4 {) t* H4 a
+ H& [& r+ A0 j/ v4 C  c                                "%d\n", ret);
" \3 V8 i$ o! w# C2 ]
' j- I3 Y& c) A' V1 H* `) P: R6 v#endif* c4 m- y4 h! X- K. f8 j

! @; l, p' I0 U* v0 F# t6 i2 b        ret = platform_device_register(&da850_evm_tl_leds_device);5 \& {! E4 M# ?0 m8 Q# r. P
  o$ w. M6 x- v% c* ?
        if (ret)
! }' Q, g) {( m9 C' F  Z7 t$ t8 p6 B9 Z/ H/ S
                pr_warning("Could not register som GPIO expander LEDS");* o: V! D5 e0 Q; S
0 V  N* B. u- b3 y6 R  w" f2 S# r, `
        else7 ]# d1 y8 X3 Q+ V6 d

* C8 S- R8 [5 q4 s                printk(KERN_INFO "LED register sucessful!\n");
, F' a& Z1 m" p" V3 ~4 ~/ u& ^5 u& m# A8 b& p1 f' i5 s! n7 ~& M9 Z

# G2 q. H2 N5 M8 K/ ?0 w) s8 m
        return ret;2 o5 G/ P, a' o. ^* C6 ?! P

4 f5 B$ Z% g, y1 |4 v}; ?' t- ~, ]+ t2 x& c7 ?7 p) W

* A' W% O$ h+ o9 U. D# x
$ a, P3 L7 g4 s; R! x7 m4 ?
( h6 A6 }3 _* [1 Q; fstatic void __exit led_platform_exit(void). H" b$ n: b( G: Z) J7 v: P1 X
8 g' I# r' C. }* t
{
+ o0 g# s6 {2 x, ^8 k4 \5 `
. N  z6 J$ `) C        platform_device_unregister(&da850_evm_tl_leds_device);2 {+ j2 P; }5 l+ N& {  L' t

  ~# S1 G+ h' a8 y, |! K
6 Y* q; _$ A, F2 Q" D) _9 ]
9 x, O+ _0 q0 h. \+ y, N        printk(KERN_INFO "LED unregister!\n");: M8 W" X4 \/ I& h

) ?* v+ }- h- T8 ]: G0 N0 z6 b% A) A0 ~}
1 C* U0 X& J# h$ b/ v5 d7 m! x; b5 c6 T/ R3 ^

' [* e/ K6 {+ s( ?3 [! q5 m( D) o
* r+ B4 ~) L9 O) x' Cmodule_init(led_platform_init);
6 X& y# K$ R1 l$ v! l$ m/ e. w& w3 X2 {) _) ~! U6 ^
module_exit(led_platform_exit);
8 U( e; N& f+ ~9 {/ q3 K; K  W: R( s2 }  J& K5 q

! l1 S0 n& T, R* ]7 d& l. d
6 H& v$ W' @1 p0 w, UMODULE_DESCRIPTION("Led platform driver");
* [' `- f% l" g( }( J' Y: Y' b+ i# r6 W& h* f: m& S
MODULE_AUTHOR("Tronlong");  y! i3 W  x! `7 N$ C. \

; b( Q  U- z5 c; G" p, P4 u3 H% UMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。4 v* P* A7 c* f, d$ t" J

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32$ O9 U, o( {5 Z8 y' I9 ^1 Z: T
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。# _8 W9 G6 Z( ~/ y# T  P6 b* {
...
$ z4 d# a2 n; x0 _6 i7 U6 a
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。. ]  `' x( p9 @: e& D+ M
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-7-13 15:31 , Processed in 0.045750 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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