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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 * P$ z. v' Q) A# B  {

/ I6 q- v. v* E( G9 O请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
7 U# h! ?5 D" Y$ q2 S
, P. F' ^+ f2 M7 [之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
% z0 \7 w9 {' N& n# O3 g9 t% v4 I; u" T8 b3 G

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
沙发
发表于 2018-12-14 17:14:42 | 只看该作者
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱动,通过应用程序访问驱动去控制硬件设备。
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
板凳
 楼主| 发表于 2018-12-14 17:29:27 | 只看该作者
广州创龙莫工 发表于 2018-12-14 17:14
* g. {  b" [, f3 G0 f: elinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

1 H/ P; E2 T8 v$ q2 R我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:& g# a/ e7 Y0 w! y1 ~+ ~2 X
#include <linux/module.h>
0 A. }# ^( g* @, c8 |" @  T+ h: W, U: q% i4 h, T
#include <linux/kernel.h>5 T# C$ v5 K$ q. H

! {5 c% r) A- g1 v$ M) t- R#include <linux/types.h>
+ g& R$ l! `" T. S, e1 B6 u( m4 X* O. l! M* b2 C
#include <linux/gpio.h>: i9 o9 o: m% w. s

  ^+ h0 S* ^& j& m0 S#include <linux/leds.h>/ h% ^' P. ?" Z6 T4 Z  d) d+ O5 k$ j3 s

" r, K* {  ^7 \  N8 w#include <linux/platform_device.h>
3 U4 {( |* d' ?6 w4 m/ l2 s
2 g! X7 X* y  T3 u, _5 R
& D) e  C! y- Q0 h, v$ y* Q! _4 ?0 J" w4 z) I$ K
#include <asm/mach-types.h>
+ J2 P/ @( r' q: O: E+ y6 K( ]+ G$ Y2 i! l
#include <asm/mach/arch.h>
' }0 x% i- {. k2 a- y, E  U9 ?* [& M, s1 B8 I
#include <mach/da8xx.h>' y4 u, e2 ^' U6 B; T8 Z0 K* s- t
0 Z& m5 Y# |. {: ]& h  T1 S) I0 ~
#include <mach/mux.h>
- O9 V* z0 E# q" c- M# d, w
* ^* A" w& y) s5 Z) ^- \- l' y$ @; W- \( v
/ i3 v  P; t7 h8 h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ P6 \/ [8 j5 p0 u

) S- @4 x3 i8 H0 H) Q: B- c4 K' y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ p2 u' d. B* _. H, Y# V: I

: C( h9 n: K' ?! Q& T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 ?3 Z7 i1 }) U, Y
( }8 v; n7 U" P  m8 B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 N/ x3 f  z# \7 V( j: G3 f
, F+ f: C. h& H+ k2 l
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)9 h, n& y% q. C; G6 v. C1 r; D

1 w0 [2 N- L8 R+ Y, o8 P#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
1 o9 _0 z' c) Z+ _  R6 L. T" o& K- g9 Z
5 N# T5 [9 y$ _! U) w1 U
  m- a! D" S+ O
/* assign the tl som board LED-GPIOs*/
5 N. Z( h7 l2 E  T
. R" K) S* r7 S" N$ istatic const short da850_evm_tl_user_led_pins[] = {6 \0 l' U! v1 @5 T
& E, ]' R0 Z2 k" V
        /* These pins are definition at <mach/mux.h> file */
& q$ f; R! T9 `" o" d' O7 Y7 n- r# l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
% d0 i- Q+ C' S% ?: h1 z4 ?# Z0 Z
1 Y/ O( P- A; ^$ z, ?        -1$ e: u/ ^( W: m) O8 X8 M9 f0 M9 J

) Z8 h' w" H( a( u1 \};
  \/ g4 i% b5 T" F$ P: A- d' l4 V* z
) I; F* i  o4 g$ u3 }0 N
2 q$ j0 z, ]" d
2 v) l* r% A' lstatic struct gpio_led da850_evm_tl_leds[] = {4 p3 K& @( q% H

9 i* F# P* n, ]; S        {
' l! ]- r- e9 m7 t+ [0 h4 V) K3 \0 B" Q/ y9 P5 U/ Z. E
                .active_low = 0,' m6 N9 R2 F0 j3 C* k* V0 X' p
; U7 E# T& g5 f+ u
                .gpio = DA850_USER_LED0," x9 p8 G- X8 \7 C, O! o: A  N8 Y
$ A- L5 S% D1 }
                .name = "user_led0",. @2 h6 }! N3 Z+ @0 a

, [5 m) W" v" o4 B9 ?$ |                .default_trigger = "default-on",7 O. f1 z: b+ Y. H% `" g$ t& i  w
4 j& t. R& d: k# x
        },
( [1 [, Q3 S1 s! P8 B7 R* I0 {8 V+ L4 o' ]  S$ b) l
        {
! D# K& F  `: m  H# ]6 R7 s& k1 j$ }8 L# ~' s0 O: v
                .active_low = 0,3 ?' _, f; ?- b5 `% h) G+ D
; a3 g$ {5 d5 u- e+ ?4 {
                .gpio = DA850_USER_LED1,
- c1 s* J7 j" H1 v2 Q( R' Y; x7 i, @' \$ O8 n
                .name = "user_led1",  m' Z' U3 V( m- H' `; _
( j) |1 I: s6 z& P1 H
                .default_trigger = "default-on",0 R/ j0 {3 F8 E/ m) H4 C

& b7 l8 m: |- x. X; |. R        },. l3 O- V# R2 N/ E. Q
3 k/ {0 F0 o  H: }1 D5 j& b
        {4 _1 V# a% }5 p  n9 N) S; Y6 n/ y
! A+ Z4 d3 J/ c* X; q1 |& b. U3 `# k
                .active_low = 0,
- Z+ c3 @5 C+ {! f2 v2 s" V  a
4 S& i. Q. Q. h2 C" m- C                .gpio = DA850_USER_LED2,1 y# C' j# J6 e
2 C+ x  ]/ q5 y$ \! F  b
                .name = "user_led2",
. k* T& J8 V; L+ v9 P$ v; D9 c! _# ]9 Z8 W& r( m
                .default_trigger = "default-on",' [& B$ {' m, z
+ R+ ?6 O+ V$ G& \* F- N7 y. t' M
        },0 i* i/ `6 g+ ^2 J4 R5 n4 \8 J! c

! g. z5 }. ~& S4 q( W4 y        {
# W; R" D, B" H3 k% a
! `6 U: m) K" {5 {  R; g/ Q1 F                .active_low = 0,% ^: L7 r9 U' P9 r( t* s

7 p; W0 g% G; q                .gpio = DA850_USER_LED3,* k9 {9 ]- a4 u

' P2 }: l: a! L2 {6 w/ A! P( J/ a                .name = "user_led3",
# {% y" n+ i# E! i
8 M; C2 d/ t7 ]' B, B                .default_trigger = "default-on",
5 I3 K: _0 e4 U0 `1 j
8 R( y+ t  P9 r+ |3 b" G+ @        },
9 R1 ?% B/ v8 Y% w" x
  j8 ~' _' f7 A" {- L/ F) @) [        {8 C& c2 s6 T( F1 H
1 ~- X/ O0 s$ x1 r
                .active_low = 0,
& p, r" F3 k8 l& v$ B$ U8 k. \% j3 c
* ~/ d; @3 y" t4 r) U' Q3 K                .gpio = DA850_USER_LED4,
/ k; ?2 {( p; }1 |3 \! g+ @( y" P0 z6 J0 V% I# {/ W) I
                .name = "user_led4",
0 g  w# z6 K7 U. u) R" |# v
: {* \" O9 J) y) j! [) \                .default_trigger = "default-on",
  ]" n2 q. q: Z3 e3 M8 b  m. S
1 W* w. X9 ~: l% n+ J        },+ y& P! r. J  B8 {% g* M
3 d& V9 s8 m2 N$ |: [% q
        {$ W. a. ]4 J# l$ k9 s

/ b7 W, u* w* j6 E7 M                .active_low = 0,
' b1 z( Y+ c. `, U1 `& \3 x  N* D
2 U, P4 U1 u- z/ w0 ]                .gpio = DA850_USER_LED5,
! B) h9 m- B- \; Y: d# w6 ~2 I0 i& x, K6 A
                .name = "user_led5",
+ U6 B8 t# J9 |& G5 s. [0 q1 G- x3 H8 E, v1 [1 g
                .default_trigger = "default-on",- I4 J! o+ O0 p9 S* y

( w7 e$ @  a9 n7 E/ N        },, v+ k' {. M8 y4 A- g3 O7 _

" V9 r1 F, v* _4 Z# G1 R};& o* H1 {6 C8 j: k( R5 u- i5 b

! v, L* r# I: [/ a$ F$ ~3 ~7 B' p6 t
5 w  i' e5 s: {/ k& j8 @: o$ b& b3 R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 t2 b3 j( Q3 v4 n
, j5 s8 ]" G/ `) Q2 L- o- w
        .leds = da850_evm_tl_leds,6 [3 c/ X" R6 z6 D1 |, _8 ?  _; O
+ Y4 ]! O6 W+ Y% V: p1 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 x& V3 o6 z; [' V
5 w0 H% n4 Y1 ]* I};: `7 c$ j7 O4 ?8 i" ~4 M9 [6 g

& o5 t  `2 _2 v5 F& F: Y$ p1 `% u; S
$ P7 n, m* y: ^5 ]6 ^6 L% a: d5 ]; g
static void led_dev_release(struct device *dev)3 C7 D5 q# R1 J: S

- H- N4 r" G7 O9 ^" ~* V) Q$ D{' ]' Q; Y1 _' y4 V6 w5 y

# }! h1 \$ T! B- k' a8 p! i};& S! @) [, e( H( N: b

. m+ B- {4 W7 T/ O9 e' x4 u# m9 n; g- P/ _% @# k. h& L* G
1 \. i& f  ?3 h3 \7 k3 E- K$ {
static struct platform_device da850_evm_tl_leds_device = {4 W0 t6 v  t  w. ?6 ~2 i7 q- l

1 x3 o' W* K; w- s        .name                = "leds-gpio",4 F) V" w% H' d
+ j3 I- j8 A$ D( h1 u% H$ E
        .id                = 1,: q3 z' X' ^- M' G7 ]

  j+ D9 K6 E% q1 y        .dev = {0 I+ L, A& I* {7 o3 p3 x
, F/ m+ r2 K) N- f
                .platform_data = &da850_evm_tl_leds_pdata,
0 v) ?4 V9 Z7 y+ b
+ [7 w, e! h) H5 i8 }                .release = led_dev_release,/ P2 v5 c' j& U) j- N0 {

6 y8 P; V$ }1 R$ q( {- f        }/ b* i3 A8 P, W7 k3 S2 u' V

$ I2 C: D7 w% v+ a- C};
/ p+ M# g; I9 O% X! c3 ]& O& A, u: z1 I
+ G. j  X% S2 u6 c5 \
2 ]$ b2 V' `5 m3 x7 M
static int __init led_platform_init(void)! E% a$ [/ Q/ q
$ {: |) y; J$ C8 B
{
8 O7 H, \) p  {8 h" |5 h7 b* ^6 j7 F1 O$ k
        int ret;6 r- b- x9 F# P! U. k- @8 ]

, Y2 n; k, ?1 i9 U; V9 m" z#if 03 o+ B; k/ `. A  O0 M

9 O' F) p# i" ^0 ]% n" T& {5 j& B        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 _% @6 Y7 Q' s+ _
1 V2 c* U( Z2 q$ r& B# J* C        if (ret), `- I3 W# U9 L' [

/ }( ]* `: e8 ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 r+ Z' {5 d$ [5 D. g. l- H$ a' ~: i6 I: [8 K
                                "%d\n", ret);4 d- i* `- u1 t; k8 V
0 [+ r* b: b6 w! w, @
#endif8 d3 B# d( i4 [- G- w& R, Q' t

/ `* G4 h0 \& O& p1 _* l        ret = platform_device_register(&da850_evm_tl_leds_device);8 _9 _& `& y7 o0 L( K

& R0 O; B# k4 d( h3 J        if (ret)7 h3 ~7 Z# p$ y8 k
. H* u) t7 s" N/ w
                pr_warning("Could not register som GPIO expander LEDS");
( Z& B# ]% N# g8 O$ B( j' W) {. b/ I8 n3 U; @( K8 Z1 J7 l& v! i# m
        else7 i7 G. l8 M0 t- b0 k" I* F
' D$ V+ r2 N% b" A! L  L
                printk(KERN_INFO "LED register sucessful!\n");
5 {5 X1 \: ]. s
; o4 y: s0 L1 I* ^
: P$ Y9 w: M( U  Y; }* l- ]) \; N
        return ret;
( A* y7 B2 M# H6 S' Y( f6 C
( J, w( ^1 U5 D7 E& N}
2 u+ Q, ?$ N; y
2 P2 f% Q: A  k$ a3 S  N5 O* [2 W1 M+ A' V0 V1 ?  S

& P* x7 A) V' u+ J7 ustatic void __exit led_platform_exit(void)
$ D' ^9 f5 Y1 N3 w
# ]$ V, m; x% Z  a4 V{
2 F' `% G' J0 h1 {) x3 ?5 g8 I
9 `3 A2 @. C% |5 V3 Y4 C        platform_device_unregister(&da850_evm_tl_leds_device);4 K4 \' k- Y: m4 ~
# q+ ^9 A/ m& d5 q# D6 }2 C2 Z! b
( b9 d) t0 R. K& ?$ W
- O' A6 G+ |) q' }
        printk(KERN_INFO "LED unregister!\n");
1 u* G# x# w$ x% ?, u: N) `
* D& a7 m" O' q' X( s5 g}1 G5 P& |8 x3 A

1 L5 [2 ^4 n# {3 i4 j7 u$ ?1 F
3 P) {$ G; F1 n: m7 P* E. P4 p2 R$ `* B+ x. S
module_init(led_platform_init);
6 W: \: _4 h: ^' B* H# r" x6 k) u" V. n$ p! p! i
module_exit(led_platform_exit);% J( r$ R" n; v- ?( E
! m8 L! E- p7 Z5 `' D

- }$ j5 c+ z# T- C$ M* ?' Y7 Z+ I9 Z& S  m
MODULE_DESCRIPTION("Led platform driver");1 Z6 w( f- Y% g0 A: d

4 Y% k" ?/ C& z' cMODULE_AUTHOR("Tronlong");: {- ~0 Z' |/ L; H* F  K/ g7 y4 E
2 N9 D, m8 l- P* b$ O
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。8 ?. X+ U- H/ [, l& J+ p

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32/ |6 L; |0 n. T( F$ P! X3 B
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。% [  F4 x2 w2 ^
...

$ K, s7 L& M3 v好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。! u, {! ]8 D% s0 X8 O7 i! k2 y% i
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, 2024-5-6 03:34 , Processed in 0.044814 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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