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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
& b% X9 d, V5 z/ W! q. |/ C& ^' E8 Y6 I! F  D5 i
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
& j* q- S! c5 G0 l% M# b8 y' e9 N
, E) v) O$ E6 V5 Z之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?, @* O# C% a+ ]# l" `; p

7 B5 A0 w) Y; @6 E

本帖子中包含更多资源

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

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
8 _/ R: p! h) ^; V5 Mlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

& [$ n8 I  f. k0 R1 G/ y( p3 y& q" v0 D1 i我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
" G/ B7 |0 `. a/ V% Q& D#include <linux/module.h>; K9 j/ G" h; A0 o0 o" V- B

+ x$ i, D* A0 C' D7 |& k#include <linux/kernel.h>  A+ ?# O4 _' ~0 n' n

5 l% p( }! t% e& D2 C#include <linux/types.h>
* b0 m; E: W6 m" G* a
; N; A! x4 h! i% P7 t#include <linux/gpio.h>! C( n% Q# x8 D- S
7 j9 n! E& G* C
#include <linux/leds.h>, @( f: f8 g: Z. G1 j- E+ `
9 n3 M6 O/ J0 J) M
#include <linux/platform_device.h>) W; f: V' ~6 ]* O2 @$ X( x
0 P) q7 W6 t: H! _

. p7 D3 ?2 d: N1 i* y: j2 h8 N' D: l5 ^9 q, C8 e7 y0 v8 Q- u
#include <asm/mach-types.h># Q& S& E' B$ @8 s" r* X+ s

: k' J2 I: h) S& O#include <asm/mach/arch.h>
2 g5 q( z5 C3 ~9 E) W2 R6 O: Z6 Q
4 _3 W' K" J5 _" m1 u$ K" ?: p#include <mach/da8xx.h>
* b: A) @* U: z0 }; l
$ E; \  @- B* G; v# Y#include <mach/mux.h>
/ A( V& ?: d9 s4 ?5 u2 A. p. O
7 e( s2 ?* g) K/ q* C7 R9 {# J6 V3 `5 p" z( K, y3 \( W
% R6 p- G  B& l; [; D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( h$ P3 f6 B6 J( H$ I

6 M2 b2 Q0 I! B# Z7 n2 [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 Z' @6 `% U0 l. U; c- q# @) u( p4 |# G3 L5 {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 o4 z% T& a1 N' w

# b# a, z7 Q  y4 k# `( I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 x, U( t/ X7 J- }1 b% W
- F' x3 |: E7 {, N' V: U
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)4 t# h& K- U' F: R+ e+ Z' X' e

( g/ j  J7 ]: i$ D#define DA850_USER_LED5 GPIO_TO_PIN(6,13)+ ~. t1 J4 _1 J2 b( ~, N
6 l) a7 o; s6 ?
2 j, K, C$ j) X

/ }( _9 ?0 a+ d) N/* assign the tl som board LED-GPIOs*/* w# _4 N4 G, j/ V

& O: {  f2 O0 h  jstatic const short da850_evm_tl_user_led_pins[] = {# J+ n' P9 Y) L  j
7 t* m* v6 ^% `8 ~, U' f
        /* These pins are definition at <mach/mux.h> file */
- R, M9 A; d; {4 o& E. Z, _, Q  N% R$ V+ k% Z" I  x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,  z; L+ E  v" }' [

1 A4 {- S3 ^' a2 c7 N- _        -1+ y  x! t, W1 L: {

9 [3 n  a0 p# B9 T) s3 }" H};
' f2 u+ D6 H6 R# s0 D1 v5 r: m
& G& v, g6 M* ]. K' Y5 ]) _9 K8 s% I8 B3 C8 m
6 z6 g$ g( W, p% u7 e
static struct gpio_led da850_evm_tl_leds[] = {
# Y$ I+ |* w3 f" [. Z/ c* Q
3 z7 g5 t0 \- y& v; t' A' x3 |. }2 b        {
& \& T3 c' B, N; Q5 y" A- p& P$ B' O' I9 C/ }) P3 B2 c9 f. D
                .active_low = 0,$ o+ v8 n$ J9 @# w! K0 K
) U5 a3 u+ V* k) I6 Y* K
                .gpio = DA850_USER_LED0," G$ d4 s0 z8 p- s0 [, v

* Z0 I0 g, C0 q                .name = "user_led0",  D6 o: G& @2 K! N1 y0 a
8 A2 k! @" r: I  c7 Q! E( O1 U  b
                .default_trigger = "default-on",
( m6 |6 Q* H( j+ r- Y6 M% O  X! J3 t# t: z7 a
        },
; w  @! R9 s9 s, E
" A( D/ N) p8 {3 ^, h        {2 L6 {' O. _/ ^& B  s+ n: w
2 s. C% _1 P5 h7 K2 n- U2 N
                .active_low = 0,
/ ?! H+ {' J; X
3 b- h7 N( X+ |! }' H( M                .gpio = DA850_USER_LED1,4 r+ a: T, ^1 h( p
5 {9 Q; m# E  s
                .name = "user_led1",1 l) I9 n5 d8 B

3 s6 Q8 d& ^/ W/ h                .default_trigger = "default-on",
& I5 O) I$ {; S! V$ m8 [- \$ H! p; l+ D& U* |# v( _3 G: @3 F, R
        },0 W( {  C$ {1 ]
: K0 ]1 f8 z, ~
        {* l% R/ C. b, E0 T7 V

  |& _5 T9 t( L                .active_low = 0,
  E5 U: A' {9 S! ?1 @
1 y) R& t' o5 ^6 q8 @                .gpio = DA850_USER_LED2,1 C5 l% t# G# {

6 a2 G; J% z! S4 w% V4 Q% U                .name = "user_led2",
1 q2 R6 M# |2 _9 b$ E
  }& N" B9 e/ k" B9 Q2 l- }% n  e( }& N. R                .default_trigger = "default-on",
' q4 t( e% j( g( z5 h+ ~5 q% R6 Z* F( d6 W# F, l9 U4 c7 e$ N0 _7 u: d& p0 `
        },
9 }) g6 B5 \: }) E( b) Q  r3 J2 W: e% U, W- I) y/ e
        {
, \0 I2 u0 G5 m$ j) s1 W' M! O
" c) h  P9 V3 Z8 d5 u  r                .active_low = 0,3 [7 ]5 k% m( p( ~. y- ]* _7 v1 i

' V& r3 L7 h1 d- o! V" U) J                .gpio = DA850_USER_LED3," ?8 {6 Q' w; Y' w

- M; t' B" D; j* N                .name = "user_led3",
/ M0 `& [3 ^: q" S" _& ]. Q: p$ _! J! M/ E
                .default_trigger = "default-on",
* N% h" O# l8 p+ l0 N- A! p1 D. {5 k" J' d* C
        },5 l9 c4 N0 K' h5 L+ P( K' e  @

( b; P9 N4 N) p/ M        {: Q# o- r8 v" q: D6 j# D
# u. a. L, t& S# B9 b8 _
                .active_low = 0,/ O2 B0 l8 e" l6 X/ \4 k. q6 M+ D
  _2 y- p/ R( q- E; p/ h, r
                .gpio = DA850_USER_LED4,# s3 K2 B$ d% T# U
: F; `/ n. I0 B/ s$ d
                .name = "user_led4",8 h% w" I, _3 w' T& `1 C
6 F' H  A+ ^7 N  B& W/ ?- v
                .default_trigger = "default-on",
1 \7 x1 f* D5 Z; v- ]8 S' P- f3 m8 n! L: G4 c0 p6 g  B9 \: T
        },
, w3 t# T) S0 ]. G0 o
% b- ?/ ]( Q& j) n        {5 B- H4 ~4 ]. X5 G' m0 n6 W
5 j5 G+ R9 y0 b- a* M  ]
                .active_low = 0,/ O# ~4 G. ?4 O6 ~) ~6 Z9 L

: o# x  ^5 l1 Q/ E* _) p* h( F                .gpio = DA850_USER_LED5,! j' t8 m4 S0 Y4 L- T; P
; }- ~4 b: r  @5 K
                .name = "user_led5",
/ F. t, Q% P! Q4 ?& ]! S! @! c. ]& R# ]/ I- f/ n  F" b* H- _
                .default_trigger = "default-on",4 p0 D: j1 Q, o3 I5 y
. z4 ~3 `9 o, G( q1 O
        },  P0 N1 B8 Q$ v5 q

% d3 ]' }0 T6 H7 R};
$ v# w0 J5 n* {: }* f
$ r$ f# p1 W  O0 ]6 y* L5 M+ c+ ~: s' T% W% Z# g* y6 _  w

) J$ y* M. L0 |8 v6 Z+ wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# D: i$ B, J8 p9 v; b6 A; a% x0 `, ~6 c0 U5 q" S
        .leds = da850_evm_tl_leds,
) a, A2 D9 H& m* L
7 |' u- L( S$ N9 `& e1 {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; [# M, L! p! Z( ^3 i
9 m" I+ g! x2 D' X};
; s" U) S/ q# O) M; o& s8 ^- s# F9 Y$ U) g1 j6 m0 \

! e* M$ \5 I9 ~; ^$ B" f' e# H6 u3 N* O5 l/ [( S3 \# j! w
static void led_dev_release(struct device *dev)9 T  \9 j2 M. Q2 X
7 o$ d9 H1 R9 c; C4 j! L: R4 K
{
- d9 M/ E& a& x, x
' h" |1 [" g7 q; M% p};
6 l# P+ e. y! x" X) _; t
( F+ b( b- }  S% g1 e+ V7 t) E7 r
% i8 }3 J6 @" G- |! @8 j* [7 v. R3 j% Y* ]: m0 r
static struct platform_device da850_evm_tl_leds_device = {
8 j+ R& ?2 P8 w! ?. P) n, `" J, j% q5 T* e. Z  h
        .name                = "leds-gpio",
- ]: Z+ q6 T1 J' U6 ]* Y/ n/ n  S1 y- E/ }4 }  e4 f
        .id                = 1,
/ h' G5 j8 u# F; \' G
. W, p3 w' l6 E; J* ?3 O5 i  e9 l+ f        .dev = {
* c2 _/ n  g: _2 l
9 `6 H0 Z' A3 F0 J                .platform_data = &da850_evm_tl_leds_pdata,
0 X* o& U& u$ @% K* f
  j( T0 W2 f$ K! O) z! ?                .release = led_dev_release,
) N. {- |- j% B- E! l; Q# a
4 r1 X  N9 O0 h! y        }5 l% I! A6 h" D+ m
+ j4 N+ S$ Y" q
};/ ]( ]% e/ E9 B. _6 A
! H1 a4 s5 W' U: W, |
) D2 s- g1 \! o- N2 W* a+ h* V
+ X9 Q4 {& l- {/ h2 Z: j& j$ C
static int __init led_platform_init(void)& e  @; b# f+ ]) e# }/ R
" }% ~$ C, t% ?- b: c
{
) x# P7 J& ]. x
9 j, Y; d3 v* j* `8 U9 U7 A' N        int ret;
- V: ]& \- n2 I5 n; z
, A5 M) q0 ?" A, e3 ~" d#if 00 R) d; V* x2 M7 o
* \' w/ w" \& N. e) `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" p) {! G; U/ x9 r

+ I, N1 [* ~3 H+ f3 w0 f7 v/ J: h        if (ret)' w+ s; V* p1 P1 m( }3 X' D

! R+ K% H4 U: e9 B8 d                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 P  m% w! z2 I: ?' F

7 x2 j# n3 A0 ~$ Y& y4 X. d' v: D                                "%d\n", ret);0 E/ M6 k4 m2 V9 V) T
0 ?! h  I, [- l) E7 Y6 f! |
#endif# j' R7 R1 x: x. ^4 |
  H! U: A3 J0 {: ^
        ret = platform_device_register(&da850_evm_tl_leds_device);
& i9 _' q6 K- C2 `6 V% q3 i5 |, D% Y: T( F" h
        if (ret)
) _' ^1 A! }/ G' a  {, V& i- I$ z5 R
                pr_warning("Could not register som GPIO expander LEDS");
/ X  t1 E! a& ~6 F! ]' n( g- D
! V7 t# z9 U, l: O/ C8 j/ [5 F5 ^        else/ }" `% ~1 q4 `  c1 e/ F
; r# Y$ a& T- N8 _9 k  L
                printk(KERN_INFO "LED register sucessful!\n");
" H# P* y! D: j6 ]8 t' c; x+ ]$ o2 Z5 ~' \9 ^# n7 e
, ?3 }" q" K, e& W
# B& s4 u, a( K, G- d
        return ret;
" Z+ a0 r% q7 ]8 b% v3 `/ T6 e: i+ O
* e* [* ^8 w$ x6 c. |6 n' r}- m; ]' [! R! D( V

5 G) t: L% ~% r$ ^( u
: `% B7 J' [/ H2 P0 J/ e
7 k; Z1 F; s" g' M& zstatic void __exit led_platform_exit(void)
' B2 k* _' @' ~1 X" X- a" U) R
4 |& D7 B- Z& h# Z" L' D{
+ }2 @; G% H4 ?1 e% x- P- M9 Y' k) _) {1 j& i% k
        platform_device_unregister(&da850_evm_tl_leds_device);* }' z" m/ C' ?6 O
+ H; l7 I6 x7 }, W
, s5 W0 x9 _" @2 D0 _

9 k6 i- u8 s' W5 {        printk(KERN_INFO "LED unregister!\n");$ ~* z8 R6 V: I: ?! ]  w0 Z1 i
  d: L/ A* a9 r5 X5 z4 y4 L/ G
}! ?4 Z, B; Y+ m. n

* k( @  D) b; {) D# o  c7 U% \4 q6 c: \

) _  d4 @6 o& I  ?module_init(led_platform_init);* i- ^7 k( y, r5 r4 Z0 T
7 W7 {+ D4 o3 }+ a
module_exit(led_platform_exit);1 v! T0 J8 q8 Z2 t# j+ U4 U

; L' O6 \+ E" I
" }  b8 m6 ^: s. g1 N+ a' Z" {! u4 R+ n+ _3 g4 u
MODULE_DESCRIPTION("Led platform driver");
! T; o% o5 }, H( b! ?$ T. C" e3 e, G  n- U
MODULE_AUTHOR("Tronlong");
, e3 N$ O! h* }5 q" t6 ]+ q
' Y! ]4 E# D1 O  n# g: ^MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。& q# N% |. Y* b0 b

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
& M1 N3 X- o  [您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。, F" v* }% U. C4 t) Z
...
# a7 B' m4 x( g% H. V
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2083

积分

创龙

Rank: 8Rank: 8

积分
2083
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。; Q$ a1 P% }: A( o
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-5 19:12 , Processed in 0.050470 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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