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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑 . X9 p) }. e0 a/ ~; S+ R
3 M+ [' R# {3 d
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
+ G8 d9 j: w# \% |' W# O/ s
8 Q  b; l  p0 W$ R3 f* S7 |5 P之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
9 J7 N" c' s/ `, x5 b4 Q
, Y& o% E. s2 V8 y) ]# I

本帖子中包含更多资源

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

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+ F# X/ b$ z5 B( r: H
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

4 M% P' M+ e- `% s* R/ ^我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
2 s5 z- s( w4 K" Y/ Y0 w/ L#include <linux/module.h>5 J" U7 ]8 c* o1 [5 P
; H$ l2 h) ]0 I9 s
#include <linux/kernel.h>
5 f  B4 N. S# P& J
- r; s7 U# v' L1 j9 `6 q#include <linux/types.h>
+ f3 a* f9 l+ g. s/ A! A& M
' U' ~* i% m7 i( J#include <linux/gpio.h>
# @+ C0 P- M" Q) @$ O" F% K7 |2 k. Y
#include <linux/leds.h>
& |, n7 V- p. g2 t& E1 d7 T
, v9 F- R( N5 w& c9 h' s#include <linux/platform_device.h>" _. o) d, n0 |1 ?1 c
3 w1 ]0 A- P' Q5 V# s
) L5 ?4 {0 ]/ D) ?+ n# |' M* t- t

6 J# `! J- o2 i3 u( u7 u3 Y" b#include <asm/mach-types.h>: x+ |/ J, G, \+ i" ~$ ?$ Z$ L

& I) {# w1 K' \! v#include <asm/mach/arch.h>5 k" ^9 H7 m  s1 c' s" W0 z3 ]. L2 q

! }9 C0 }- J- Q9 s6 q0 M" `#include <mach/da8xx.h>
8 P0 h2 I  }: u+ m: u2 C# E
8 k* V) P' ~- e5 h) @#include <mach/mux.h>
" ]9 @7 S& C  b, P! V( J  d2 \5 r/ d0 f- d' C2 [" @( w, u

9 ~4 P" D$ f  B, X" ^: R3 U) C( N2 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# a! p3 }; N7 Z" g, U$ b3 [: F

" y, I# \/ L- T+ s8 o: I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 L" s! l( B& a4 ]; ?% ]" f- Q* S- N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 {. c$ Y6 j# O
% ?! |& u/ R6 t# ~9 X# J) c" \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 y; v& H& s0 |  I5 J

+ c6 k) g$ w$ L) d. e# f/ b#define DA850_USER_LED4 GPIO_TO_PIN(6,12)6 _0 I9 l- o0 K8 _7 F/ d. p2 K+ k& x1 ?

. {: F9 W3 M9 c#define DA850_USER_LED5 GPIO_TO_PIN(6,13)  s3 l, Z3 W3 X- V& X1 u. b

+ E) T' {4 ]3 a4 A: Z4 Q  U# b. _
% _9 s( @* t, E0 p6 i2 {9 q5 q) Z* ?5 ^0 F, I4 @. o
/* assign the tl som board LED-GPIOs*/
! K) W& q6 ^! b3 ]" K& K% F0 j8 r
* v4 F: l6 i4 W, Estatic const short da850_evm_tl_user_led_pins[] = {
+ b9 h  n9 Q, H% ]- P7 e
! X1 _: g6 p% ~' |5 n% T: u/ T6 o        /* These pins are definition at <mach/mux.h> file */
0 j# q$ F3 b! `, h8 x3 c
) w; h7 I1 C5 P% p  A2 l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
! j: ^- R/ d6 ]- M) ^9 p8 ]
; G: |6 A6 P( [! {6 C* J4 V' W; W        -1
/ N: p6 {7 F, j) V, `+ H
6 I8 v( [+ b4 X/ [# x! V1 Q# R8 N};
  P4 ~& ^& r, J% e) r  Q  f
# v# f- l9 Q# `% C# R! T! i7 y# o- d& N6 k
4 j3 X: j0 |7 }# a" M
static struct gpio_led da850_evm_tl_leds[] = {7 \6 ~  A; x. q0 y7 w. b" E
8 ^( V' g; {% g- a2 @& h0 r/ ]
        {
. z0 r: j9 k7 ^2 E- @9 v5 H+ R: \7 d( Q
                .active_low = 0,
3 o. l, R/ ]7 `3 j+ r+ i. w) L, e7 E9 |% B6 x
                .gpio = DA850_USER_LED0,; E' J5 e: K; e; c
. |  M# D/ s. {" H0 F5 F) N
                .name = "user_led0",
" I8 x' w  a. n. W. t9 b
. c' g3 h! I7 X& w* j0 k* u                .default_trigger = "default-on",- i/ }( g/ F" r

! _3 i0 p4 y1 U" o' r. h# g$ c1 c        },
) a* s8 x0 s* `; L" d/ a! `
( i* D2 Z0 R: l        {
( }' N( V6 H/ V8 l9 N& l
- c* `: ?8 W1 D+ K  j& a                .active_low = 0,
9 J4 `  U1 z6 [  @3 {" W" {* ~9 N/ o7 M8 W
                .gpio = DA850_USER_LED1,
' N- w; y: T/ |  \* ^, S  s" k# L- V6 @+ J3 r
                .name = "user_led1",$ S! d3 [. o* c  C. g% C  I

8 a* L* B; `; {: O1 l# H9 Y  F- [                .default_trigger = "default-on",
9 J; r6 L) c# s+ `8 V! u# W1 _+ ^
' a1 M, W% f5 w* C        },& w# F3 K5 Q; n* Z0 M1 I
# |! H. ?3 A5 z* ^4 Y/ C" B
        {; M, A8 S0 R% D+ |% b8 n1 E$ ]  {

$ G& [6 J8 Q. q( o                .active_low = 0,
1 g, K: K0 g+ \  D4 Z, l
3 v. b: a7 ?, p                .gpio = DA850_USER_LED2,* l2 N! r4 C' A4 W

# S7 I% B& w) Z. ]2 ]                .name = "user_led2",- F+ W) g  o; j0 g

) i6 N4 Y; v5 T/ t                .default_trigger = "default-on",
  }, b, o7 h( c/ u2 t9 @2 q' H% c1 _' i: V- D. s
        },0 S" J9 j! A$ J( k
& ]4 R+ ~6 j" u: T
        {
& t# \8 H6 |7 v3 b# ]: |; V' g$ r6 j  Q& X
                .active_low = 0,
# w* ^; [- W- w; Y. e/ u1 ]6 G7 `' J, p$ _1 M% X/ m2 I
                .gpio = DA850_USER_LED3,
6 |  J5 r# M- F4 K1 X% l) f2 s0 G
5 G. Q/ P) C  P0 v, _' {( r4 h2 v9 B                .name = "user_led3",
% k: X- k4 B! f! Y" ?$ S' u
) p, x# T! r' \! W+ J' R                .default_trigger = "default-on",# a+ I7 v/ f" U+ [2 H! M" m: e
* F1 I, [* R( \7 }; C4 _. l+ F! i, u
        }," {) }# w, v7 L3 H

+ f7 [  }. n5 l5 }        {" b2 b( f% ?' ]; U
4 ~& H8 z  v) _0 d
                .active_low = 0,
& a6 @  _* ?% o( u/ Y2 G; D# b
* m9 Y; C* i/ m2 v$ k                .gpio = DA850_USER_LED4,
2 E4 I: E0 n5 @( V8 [/ Y$ X9 y/ B: G, G. ?6 t" n$ h" T
                .name = "user_led4",
/ L7 X: Z" j9 a" B0 ]7 |! I" i* r! Z- K2 [2 D/ n+ n
                .default_trigger = "default-on",3 w/ s: ~/ D) C$ g* Q. ^; G1 C

$ c  m6 E& V$ a( H! `7 d        },. }- n( l5 j8 [
7 T( I5 ?6 t8 H
        {
+ S2 Q7 y: \5 m* ~* Y4 |9 K3 R! G3 }; J
                .active_low = 0,* E  K1 _# \3 v8 }0 ~4 S, ^% U

7 Q% S# }. A( r                .gpio = DA850_USER_LED5,  l1 o/ U4 x7 I4 Z$ h0 K; m1 G- m
8 \% K2 ]5 D+ l" e1 b0 P
                .name = "user_led5",
6 _1 B" @8 q- E; x; b' S7 \0 X+ {2 o: @! R/ W
                .default_trigger = "default-on",/ c+ j/ j9 }/ L0 @) G. t7 b
8 y3 }( M! H. q$ v9 u3 e" E
        },
6 u5 |8 [9 [# l6 {+ ?; z# d+ L
: c3 f" M' b0 X: S: I, G};, r$ y! t; D3 C

9 |6 n  T/ f( `% c" i  R( j0 g+ G
) H) ^1 C# _5 w7 U
# M) N  {' b& N/ x& hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 Q. C! w5 \/ g5 ^
$ |$ H! {0 y& B& s        .leds = da850_evm_tl_leds,
3 w5 F6 A' Z% \. R
2 ]4 q- R, V- v0 [$ C% S( I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 Q7 [7 R1 A4 a! L5 _% _3 K8 a1 ]/ Y% b6 y4 \2 F$ f% B
};: V0 B0 @, R: f  F1 x! a
5 Q/ ^$ s0 k! [/ j7 W& g

8 V: I2 q) Y/ D1 @3 m
  E& x3 y+ t: `/ gstatic void led_dev_release(struct device *dev)$ l/ F. ?8 v# b  _4 _

" F( d  J2 v' ]/ ?{
. s  }5 K& }! ?$ i$ W# [: L: d8 R7 C9 A4 B% v! d
};
( J; S, b2 {/ y6 V! T4 Y4 X- r% S
# g' a( Y8 q. _
2 b; J7 ^. T7 e( b, f" C+ R
+ c2 w& D4 u1 O& ^, Bstatic struct platform_device da850_evm_tl_leds_device = {4 ?- j, K7 B3 y$ X; i% ^" n+ ]6 C
# H4 S0 q& j. [  N
        .name                = "leds-gpio",- ^! f. K) ]& o6 t2 j8 C6 U% w

$ \+ H) F4 l  W        .id                = 1,
9 {4 I9 j: _1 p6 ]7 @
, L2 c4 y3 t# k' J) A$ o        .dev = {
( f( ?2 P- U/ |) Q
4 V& O4 d6 h# |* Z& W4 M4 N, ?                .platform_data = &da850_evm_tl_leds_pdata,+ Y3 t# C3 E, k" j# ~% i" e

4 P( s, h- M+ l. }                .release = led_dev_release,
) U; h& j7 a5 P5 q6 r; p- t" L1 k+ P: p
        }
1 b) N7 D7 U' j$ T, O( L: C" a4 P2 ^+ \
};9 d! M7 e+ }& f# [$ ]% S
" e: G. t& T: c, |2 B+ u
9 f& m' C. G2 }
  A3 L# h- u) d) L
static int __init led_platform_init(void)
. f9 n5 g4 h- F9 M) K& i2 e3 a( E  J+ z9 L$ ~. N. @
{
, l" j/ x2 |' g
4 Y( I5 [$ a- |# F        int ret;
8 \4 A' H0 o7 u/ x1 g, \, |( ~' L9 k4 K
#if 0. v$ a7 b) a& @( M3 U
: y4 M; L2 u* E) {7 \0 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& j0 @0 I" E) ]* D
: l8 A9 V' G/ j0 e8 H% S5 j, m; s        if (ret)
' o4 k. O0 R) p( K" g' F& [4 @! }1 W' l8 Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 q0 F# h: z: F  y/ Y

7 w1 `; Q+ c, {                                "%d\n", ret);
6 Z5 q" J* b' i. u% v" i
' \9 W$ v* U9 {#endif
. w* U- N# a7 B' t; ^- {$ q. J  j% t) g. N* B5 ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
( z4 q3 @: K1 E2 ]0 G
% B4 Y3 ]8 D5 D* Y        if (ret)1 ~5 `* k0 H/ ^& N* J& W+ x* E
! B. x3 G2 v* S5 W$ N6 m! D% F
                pr_warning("Could not register som GPIO expander LEDS");
3 d6 o5 j: R' B8 |$ ]9 V
+ \4 N) g( @0 u        else
( q& Y  O+ @# h* @' v) \2 E( N  E; h, A! U$ K/ ?
                printk(KERN_INFO "LED register sucessful!\n");+ i% i& Q1 M* _1 `' N$ E

( [' a7 @- d' b. R( z% l4 I! U1 p" C# o( j- h  U  t* _8 E
6 a+ E% s0 |( h- H- f1 D
        return ret;9 ~) b+ F7 j) L) C8 q+ D& Z

, I  u2 v: u+ X4 e) v}- \- u+ L% }3 A7 O5 S2 g0 M5 j

5 f, [+ u1 i2 t& g2 Q5 }
3 P9 [% Q5 x' G, f# n$ e+ J# l, n) M: Q' F4 w# X5 U' h
static void __exit led_platform_exit(void)
, d% l& {+ g: w; z
5 b" ]4 O" J( n% ~- t; s{: q5 R- q( I8 s4 r) d  l5 b$ O

" b" ~( d  M* A6 q$ [* t. w        platform_device_unregister(&da850_evm_tl_leds_device);
) @& p% y* y5 M% W& @# G- s3 W* @# y5 G8 G# u$ u

% S% n( {  B! X4 R% H3 l; v2 |  h2 ?5 b% v3 N. C2 ]) r2 X: J. e
        printk(KERN_INFO "LED unregister!\n");
+ A5 g" i0 B% i5 Y
. @) K7 v* ~: {}, e( O/ B) R  q* x* h

5 e4 o9 J8 r4 \; N; D* O" u
' a( |- @$ [! ?) @" O) X7 _$ U+ V9 X2 D- V8 \; I
module_init(led_platform_init);
+ j5 m4 M% V' L6 `7 J9 u% |, P6 Q7 N6 C9 y
module_exit(led_platform_exit);/ w3 [9 w  `9 h0 w) R  v" y3 v( T
/ `; T. k) O, a

" E  X8 a0 T% V5 X+ L, ?, O. ^1 O! h+ @* ^9 r) M  u' r. A* U0 K
MODULE_DESCRIPTION("Led platform driver");2 b# E) e) y$ ?1 |, e0 J

6 e* v6 h4 F4 f5 [# s" h% Q0 i& qMODULE_AUTHOR("Tronlong");- q9 p+ h  \* O! A4 S

& ^- V) N; h, q' _' t7 U& UMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
  X( n5 o: i. ?" v3 m

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
$ z, K0 w" k; F您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
/ c; C' t/ u" x, z7 d ...
$ G4 U/ b5 M, Z" R! ]
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。. t  [, Z# A* i% P, h# @( q, e
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-30 19:33 , Processed in 0.045270 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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