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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 9 W6 S; d! @3 |

. {7 c% W1 Q3 l. Y4 Y- ^4 x请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
  W! K7 o/ p+ |7 z1 o5 j1 T# S  C
# q* t7 Q6 W/ N9 y8 K之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?! G2 G* U2 e+ p, J+ B5 `/ \

: K/ \) D3 @) M+ s( y

本帖子中包含更多资源

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

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 \  G) `& B, O# v1 B1 [0 t; P
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
- G5 h7 A% S! h" |8 `0 b/ ]! J2 Z
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
9 A0 R/ R  J1 `- N9 N#include <linux/module.h># O" `7 x& Z+ X

, j; n, u" L# X* w% K#include <linux/kernel.h>/ U; X/ u$ H$ c9 F* c8 K$ ?; ~
# b5 m5 @% K8 a( H
#include <linux/types.h>
/ z( ~2 L' s  `6 U+ V# A4 ^7 P8 R) G, @3 }6 T
#include <linux/gpio.h>
9 L0 v8 i& F# A4 Y! A0 q! n( ?( H2 u2 l  \  A* o: A4 b
#include <linux/leds.h>
4 y: v$ d# ~2 F+ [" T  M  h( V% h# N5 i; G! x9 f/ [9 H3 C
#include <linux/platform_device.h>
* t8 F  w, Z$ X  H" S9 y2 L6 S" Y- c; w
+ C( [0 K) I7 i& Q8 a% x
: f/ T8 O5 X- a, z4 f7 N, e
#include <asm/mach-types.h>; |2 C5 r. |! S* S8 ?

( O4 Q" h; ?' b! A/ D#include <asm/mach/arch.h>
, z& B3 G4 ^  t6 D1 A8 f2 O- B0 h' H+ O" N, [4 [: v
#include <mach/da8xx.h>
2 U7 t. h4 V% y3 V) t* R8 u9 F* P
# l$ ^; c) y! H4 `8 D#include <mach/mux.h>1 W% u# P1 h/ w" M, m' z* e

1 n$ p! c7 u0 s+ f" r
' P0 i, {8 ?3 h7 t6 l- }8 n5 P7 }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 u# A5 ~' O4 G) R  Y/ O! T5 K
2 {1 d6 \: f+ l3 t3 E. \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 _( ]. L+ ^% U+ @+ {/ u
7 O2 w4 b8 F/ V" h( m( [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* ^/ U7 N5 e: K! F: s' N" e
- Q, d$ B! v" }& Y( v8 b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- O1 l  n- M3 P' u! q; {* g
  H- N& c9 }! `# z  B. X9 u, ]7 |
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
6 Q' S* A3 D8 K0 F4 }& v
8 C$ j+ m  [% B* ~8 w4 K#define DA850_USER_LED5 GPIO_TO_PIN(6,13)2 c6 {3 v& C+ e# g! m& H* B' T

/ {, U, _- H3 x5 ~) ~. m2 Q- O8 u
& i$ V& Q1 V. w  o4 H' }/ ?* P! a
/* assign the tl som board LED-GPIOs*// z9 y+ x8 D, q! A. ~

6 N$ |7 y- f0 }* D6 G& Estatic const short da850_evm_tl_user_led_pins[] = {3 N* W4 X3 v4 ~- D

7 O8 G+ Z7 K5 h        /* These pins are definition at <mach/mux.h> file */# o  O' b5 _( Q
, r, C6 N2 B% K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,+ G# e- q) w* y3 y; _. `9 }; h

# X, Q% q2 V/ S- J% i  ?        -1* p* o" Z# {- R' I& f2 I) J

) K1 L0 `& p$ _+ v};
& \6 F8 Z" G( K  P, L' [& Q! z& \6 I6 x  b' v/ j- b

; p" D7 n; _/ x: g  Z% X/ g: d% \
static struct gpio_led da850_evm_tl_leds[] = {" N" H4 b3 A" c7 ?7 m" N

4 X0 T6 V/ W' w: Y6 h        {) O( q/ i1 D7 P8 J7 h
4 M$ F2 G& B/ ^
                .active_low = 0,
5 U  x0 H" B( l# ?6 Z; M
' k0 Q, O9 j8 G6 p. B                .gpio = DA850_USER_LED0,' M3 ^8 ]% |0 v. n. `
7 l- ^' ?+ v; L0 d5 h
                .name = "user_led0",3 d3 \1 Z" H* L
# \# S  U. N8 W' I
                .default_trigger = "default-on",; f! F4 Y) ~7 e
' a. |- P+ @4 G6 V4 J/ w
        },
# T0 s, w$ n* b! X0 N  _+ w6 h5 P+ W" [
        {) _. n+ ^) G* T8 C" j# g

4 t, G/ ?$ Y% H) q                .active_low = 0,
7 x! y4 j8 ?0 Z& `/ X3 ~, u
7 t% Y9 ^  J5 V3 ?! {$ X                .gpio = DA850_USER_LED1,# D* Q0 ?- o( f! U% n

( `% R5 i3 b2 P( D                .name = "user_led1",
9 x6 c) ]; E9 p' v1 `4 S, U& o( C+ u: k/ r) Y- l2 N
                .default_trigger = "default-on",9 [* j3 H* y* T- \% a- R

0 K! @7 w% \; K        },
  P3 r. c+ G$ C4 l( x
# Q: L* E) i$ r0 l- Y/ Z        {) K4 p! u: {+ U9 V  u
0 \& L, F: z% h3 T
                .active_low = 0,, U4 I2 b6 d, ^' [( ]# B

! E; e" Y8 j8 [0 P9 l! _                .gpio = DA850_USER_LED2,
& c5 ?! F% U* ^  Z% l- X- B6 [
                .name = "user_led2",
  y' }+ Z& _$ p1 Y& A
* G: W; b  E; D                .default_trigger = "default-on",
3 i0 O- |' a6 N# l0 [! }0 |5 J* t# }( q$ J6 K0 Q7 C  U9 b
        },
" e4 F( H/ c1 R$ t5 S9 o7 d1 r5 M. k  i
        {0 Y  S8 P3 F) E5 f7 h* t# @

, m$ c2 G/ d8 {; T1 U1 J                .active_low = 0,
5 F4 U3 @, Y; l1 c
; t, c8 G3 ?, ^7 L# w+ X                .gpio = DA850_USER_LED3,
; u( ~# w5 W. p/ g! d9 W
" ~5 Y- n* K" ]  d" ^/ `                .name = "user_led3",! K% F3 D3 `8 i+ Q9 A
! f1 Z  m5 ^5 w1 z; O- s: m8 g
                .default_trigger = "default-on",
' d" t' l5 n" L" d; \/ T9 h
  M4 E. X" B& W        },5 P! Q1 {5 K- U9 N+ x% m

; U! a8 X3 M; [8 ^7 \! Q  V' N        {
+ A1 D! M& {: v) N  |  H+ E5 k+ `& S7 r- U/ P  h
                .active_low = 0,
1 v. K& P6 f4 P% r6 A% m8 ?8 A/ e% S7 |
                .gpio = DA850_USER_LED4,
/ F3 S! k# s( R& P+ h9 U: o, L
; X6 t2 b* _% u' P                .name = "user_led4",
( O' v  ]8 q- |2 Q  K! S5 w- Z, H0 H% H$ F5 V1 ^" o4 |
                .default_trigger = "default-on",
% x# f3 J9 S2 b4 X8 H- Y( x8 j& P3 a% |
        },, R/ p( ]) a3 M: H

- l' x4 }* T  N) a        {; @  |) {/ y! ^& y# h& e6 U

2 i: y$ m8 `. s! H& X                .active_low = 0,
9 a! Z- b) a: Q/ h. }2 B: E$ @% e: t
                .gpio = DA850_USER_LED5,, Q4 Y7 }& L& F) i8 r! b
! x3 S4 q2 @, ?$ O. P* U
                .name = "user_led5",
. {$ Q& e- s7 m( I: t8 M
1 ?  R+ A& k! ?! J) o                .default_trigger = "default-on",2 C$ R( t0 y1 g. U" W' Y  [5 Y4 V$ b
+ I0 {6 p' U; J& b$ n/ B
        },. t; N. m  {6 G* }5 q4 v. e

; S5 H! u/ T: q* x' w};
- k) e  B# k$ u  R& @7 Z) Q: K$ J+ S: k) ~: \0 u4 R% D

8 ?2 z" L" C- W; ]3 T$ _. a: r: j9 O. |! g& U- `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 j  ]0 |+ R; I0 S5 k4 n

% w1 T0 u, w' C  b# K& h        .leds = da850_evm_tl_leds,; E0 u9 B) V: l  L; K/ F
; _1 Q! x  D/ |( R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, W) ?* ^* @3 r) j0 w4 k: t& V
; v2 Z$ \/ L6 s& Y. u1 t; [) d% L1 T};0 [4 q. L9 o3 F9 r
/ l2 a% t: O: f1 q% e
. m$ @- `" X6 a' p$ C6 u

8 E+ ~. s4 D# ]' B* |3 vstatic void led_dev_release(struct device *dev)9 k5 Z& F9 y8 s

( G  o# X, t" b) ^( D6 R0 M! c  X{
# G2 G& O# _) k1 C! G
4 A0 ?, o% X! p$ L* k};) N; _7 [: _+ Y. W" j+ O* |% P
6 w- J+ s) Y, P& T( h1 a7 N# f
% @( H# O' a- k" g" x; a

, r7 w  H* X' V2 D$ Ostatic struct platform_device da850_evm_tl_leds_device = {
; Y4 E/ m) S$ x' ]' m" G, G. |9 |" {3 Q' y
        .name                = "leds-gpio",, z) F, R3 t, E& }

4 g* h* R$ \  x& o        .id                = 1,: P7 q- C  ^4 m/ Y! B- C

. [; z3 ~, j: ?- b4 x        .dev = {
6 I0 |7 p) u  x% c- ?
6 R+ H4 Q. _5 O3 G                .platform_data = &da850_evm_tl_leds_pdata,' a6 A5 O0 K. v( K1 Q

) r( ]# G  k/ K3 _5 W: k                .release = led_dev_release,
, E4 _5 r9 `- M: u* U- ^- {) c6 x, k4 z4 q; O
        }$ p2 z) F8 Y4 ]0 Q

$ u) i6 X. F  E- _};$ ?8 X9 ^4 D) I0 F0 I

) l2 m. @/ V, P* C" Q  u
. h' W8 N% A& x% V  k6 q6 o2 L
/ ~  d9 l" e1 xstatic int __init led_platform_init(void)
* r2 v. L! T8 f' q7 W4 B* L/ b" J: J- M1 ]8 p" [$ i( U
{2 O& W( Z' f6 N# x/ C

, P4 }2 j  g% w        int ret;: u1 X0 }2 [1 A) k

( {, J8 T; ]) y5 ?; l#if 0
& C3 e3 E$ H( ]: ~/ |  L6 M" `9 v  g. Q" q. r( h3 Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) u+ }; Q# G1 d7 ]( {7 b
: ?% ]+ x7 |0 Q/ @' @. g- ?        if (ret)
" H$ F5 k5 B# Z0 f6 p' n. p/ h, P. |- ]) y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. g( E: K* C! \7 m1 A
% @- x2 |- u6 Q+ H/ |! k% x                                "%d\n", ret);
- o3 V5 W/ V* c: q" v
7 U. _& L2 y% E8 h2 x# x, o3 |5 F#endif; J3 c% f. r) l& L  t8 u/ m
* E8 e8 u- j; ]# d5 S" }# _
        ret = platform_device_register(&da850_evm_tl_leds_device);
' H- Y$ m8 X& y+ M6 |! m: _- k" @) t7 a7 [* j" b- V9 V2 T3 F- E
        if (ret)
8 j1 O8 l! _  K0 m) S
5 h6 d" \# j8 T: [$ I1 q. r- d, M* f                pr_warning("Could not register som GPIO expander LEDS");$ \2 D7 f1 U6 ]$ A. G

: V; x: E4 i: |$ y; Z        else
) M/ b5 h2 U, p5 R; A
8 Q  r' b& Y! W$ w                printk(KERN_INFO "LED register sucessful!\n");
% |  m2 v; P$ r9 M8 m& Z6 u# a7 i6 m
: x9 v+ C' C& Q) ^. Q( f8 B+ }6 \- v4 a7 ?
/ X& O/ ?' \  j; j+ @
        return ret;  c- @! v; c0 q4 A6 ]/ P. @
. ?7 H" l3 @) C- I! U3 d" B
}
6 `& q1 ]6 `9 F
3 a2 T! G1 A! a9 e  H- Y( q/ z9 ?& y  [3 w$ `: ]6 B. x

( k6 f6 ~' N- l2 Pstatic void __exit led_platform_exit(void)) E  w6 S& ^, x/ ^% C5 k
. H7 c% j% t! w' C  j
{1 [/ v  D. ]% D" A6 G
, H8 q) A5 N- |, k! l
        platform_device_unregister(&da850_evm_tl_leds_device);
; u) M1 O: y/ Q: @1 R7 ~3 i4 j2 J2 w7 [1 Y# ?1 z' P
# a- C- A8 ]8 `0 r
8 z0 G& i7 r; E1 m. M( G1 V
        printk(KERN_INFO "LED unregister!\n");3 y' H9 o4 I; }/ p  s2 O/ J0 [0 X

1 @0 e7 |6 e% o$ a}
8 i7 W+ t, B% R5 ~& _& K+ G
% B0 o) @/ w( U$ G+ K  U5 p% G' r+ J. Q4 x% l/ |
$ D$ e( a; }; B& q' q- O! A
module_init(led_platform_init);4 F8 m/ ~/ r% j" @6 @# d2 J

- v; _2 c$ s8 U) P4 Gmodule_exit(led_platform_exit);( f) b; P$ T" W% F3 z/ G( d
9 E$ M% C6 k. r8 j) j
% ^2 t# m9 ]1 J  @0 F8 r+ B4 f2 J* Y

2 e4 t4 `7 f+ c5 U7 @MODULE_DESCRIPTION("Led platform driver");
+ t% k2 h8 |9 N1 }9 w, ]; Z
" @0 F: u# O1 W4 qMODULE_AUTHOR("Tronlong");# ^  i+ G, b% y+ [
$ d# p( [  R6 J  Z% H
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
9 M8 ^3 q! f8 Q, J4 ~1 V% `

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:324 N8 d3 z, @/ w- _. I6 e* t; o! Y; r
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。, r( s( [8 |! i- K8 T/ E+ z* E
...
* q6 i4 F* D. S( u
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。# Q1 N+ O2 ~: Z' p. S4 `  b6 ~1 s( c! T
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-1-16 14:16 , Processed in 0.048818 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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