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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
) S1 W) f9 C0 s# R4 p% U
# [& ~# [$ c( p6 y4 g: t请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
2 k; a* \2 c2 A- ~- c: S* X$ P* X' ?; s, m/ `+ D1 J" e2 w
之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
( ?" b* Q2 M  x" M( X1 A+ l. Z5 Q& g# k6 p- C/ ]# W

本帖子中包含更多资源

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

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
1 h' v$ d0 A4 S6 E1 Rlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...

* N# L" H4 h1 f7 u  i3 i. J我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
/ g5 D' s8 j7 i, f  v* T9 @0 k#include <linux/module.h>3 m' ?0 T; ]# I: }2 o

1 f) ^+ O+ b, W& a#include <linux/kernel.h>
/ D8 }2 k+ U; Q- g, o
3 t+ E6 W/ d; ~  {4 m#include <linux/types.h>
7 a, f& R- \2 E: U- v
: \0 D: \: j! U( j#include <linux/gpio.h>
) @( ^( p  b4 _+ i. b
1 i' O, e6 P9 W( H#include <linux/leds.h>
5 K7 Q+ C7 q1 K# `- J
- ?) a. y8 i! s" L& L" P5 [#include <linux/platform_device.h>
: N) y5 \, e5 `" _0 Y& V* \/ ^8 L" ^( [+ K% i3 x
( U% V" F7 t! g  G
* q5 q- d5 E! G
#include <asm/mach-types.h>' Y. X% f# T9 Z$ V3 }1 R
; u% w' F- a" M4 w! N, R  G
#include <asm/mach/arch.h>) P, D, I* `5 H) h8 W! V+ b
( e5 \$ p3 o/ G3 q: S7 Q& _
#include <mach/da8xx.h>  \0 Z' R9 ^6 @1 C6 t" U7 Q0 M, F

2 T2 V3 ?1 o& g2 L: p#include <mach/mux.h>
& u, E( T' y  c  w1 G0 W
- d  H( M' `% |" @& C- }& }1 e9 K. S! V. g1 N8 s
# _( Y) z: \' r' s, [4 Z/ r1 w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 h8 z3 {6 D4 V& }5 ?! X$ C- d
4 i4 i! F) l/ h9 m9 ?2 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: z7 m( _5 U; R8 Z  }* _+ ^; J4 G
- Q( D2 W0 x3 j& I  D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 F; T( a( M1 Q( L) ~
- g9 X! P! _5 c: R' m. ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( q# y/ V0 M% H) z
- C6 a9 U- Y+ |9 ^
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
# Z- P: d" U6 B. L5 L. ?) o* m! ?: c3 U" p) f  w5 M% ?
#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
+ I$ K. [4 H! k' J3 k5 }1 R/ C$ j

( Y4 G: @2 K& _6 A: M- o8 t: ^
3 `6 ]  r5 x0 O! D* ^% Y: b$ K; G$ y6 J/* assign the tl som board LED-GPIOs*/
/ W6 y/ M! b; G6 F
) z" L2 P$ b+ B+ M$ C0 B7 Cstatic const short da850_evm_tl_user_led_pins[] = {
, {! k# O0 P% _7 H4 @. n$ L- G8 k3 i: W) S) Z6 @6 x( Y
        /* These pins are definition at <mach/mux.h> file */
" v$ K" _' m  d, X  g# H$ B8 i
, i( s9 m' {* i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,% _# c! w+ z5 O0 N
, N& \4 J  r6 |0 T
        -1
% ~9 O) B/ C5 v' b  d$ L: [9 F: _2 H: I1 T  I6 N( m
};4 f( y3 O5 \- u4 `8 ]0 S

- Y1 D2 N: l* l: n: l2 _9 U+ E# _; @: \( L
$ w" n- E9 ~7 m' o3 A2 D
static struct gpio_led da850_evm_tl_leds[] = {9 h: g4 ~! Z4 F+ V7 U3 W; i! _1 j* U6 B
/ g6 H9 |3 ], l
        {. Q! X  B/ `" \* ^1 n/ V

0 e; L- W+ z: q7 X% f                .active_low = 0,) F! I1 z, ^# ]/ H$ V2 C) c
% t8 s" ?7 U( D  @/ s) b
                .gpio = DA850_USER_LED0,1 w$ Y9 w/ Q) E  i1 X2 E2 D6 @

1 ]" V& |. X8 Y" k1 @2 P                .name = "user_led0",
7 {3 r; g8 I9 N
1 w4 j  h4 ^* w+ B                .default_trigger = "default-on",5 j0 L( D- G% s1 V, O8 b3 q4 J. L

( P" j) r# m) B* H4 |5 `7 }        },' t* t0 U& \" b( J" O
& a( @8 [. g2 g8 r; q# n& W
        {% V1 N7 q3 H: O# w& y/ d; x

- V; j) {2 O+ D9 p: W1 A" S& q                .active_low = 0,
4 l0 o2 I7 W+ i9 J
3 N; W. g) P: q( @( U( G% P                .gpio = DA850_USER_LED1,
5 g2 x3 I4 I& L  E' `; m8 m' X6 I: f1 S4 v
                .name = "user_led1",
1 E+ B8 U9 u9 ~5 _
5 [5 P8 x8 I3 y% H% G! R1 C- p* `- T                .default_trigger = "default-on",5 N: n& |' n! \+ s' D: P+ t9 A
+ H! H4 {: ^3 ^; d  e8 P$ C
        },
( j+ i9 p. e, i- z1 @
( _, Y6 P# R/ N9 }# U        {. z. D8 H4 R0 T7 R' T# d: s

1 t- B! s$ `1 u7 Z" H                .active_low = 0,9 K0 S* h* T% |( n
# ]( y2 a7 R& I( I
                .gpio = DA850_USER_LED2,& B" Y! G+ L/ f) E

+ s' h( ?; c9 P' a8 k                .name = "user_led2",6 m0 u& N2 l$ S" p

0 m2 t2 m; \% M2 s* `                .default_trigger = "default-on",
3 w& q: b. M* Q1 G
; R4 Q3 ^: C7 }        },; z& a; K8 i& Q

8 g% D) g4 Q3 b( e0 c7 E/ J) `2 j/ g        {
$ N& N& b# V+ M+ g
! o' c4 D' }# O+ @/ f                .active_low = 0,
- Z1 n- K5 N9 F9 o/ o7 F" P5 y: E% p& @' O$ G1 Y5 F( h5 B2 O
                .gpio = DA850_USER_LED3,4 v  e4 X7 ^9 [/ q1 j+ M
: G% p4 k( z; L5 i/ [( s
                .name = "user_led3",
" v, J/ ^, {. t7 w0 D' q6 i- _( G7 q0 ]/ c
                .default_trigger = "default-on",* ]. O# Q4 F% W& x- f
6 r; z/ s7 C' Z5 }) O
        },' E1 D! V8 m, J# {1 z0 B9 g

/ u+ P! H4 ]- J4 M. {        {
3 c, M% n# ]7 t" ~- V- f9 M) Y8 z# E
                .active_low = 0,/ E. v. l* s7 x, x
8 r  s. D* U5 x& `( Z& M
                .gpio = DA850_USER_LED4,
2 [5 a9 q; v8 g  C2 E; N2 |' S8 i1 E* P  P- s* k
                .name = "user_led4",+ H, j1 I" r; i* M1 J4 y; F  s
8 m( }# i: |7 `  Q3 P, ?
                .default_trigger = "default-on",
, @5 O' ?4 m$ g  A; u( W3 g- i1 f: m* x. [6 l
        },
& L, Z0 h  x/ _
& ~" j6 {- K( U        {& c: @8 g6 {* q' \: |

, W2 Z+ u" z2 s/ I) F9 Y# U* a+ Y                .active_low = 0,
7 k6 c. S( |+ s+ E6 n4 T
# g! x) l4 y( n+ D: N                .gpio = DA850_USER_LED5,
4 }, b+ l! F4 h' r/ ]* S+ T3 ^( k4 G- Y9 r- ]+ g/ ?
                .name = "user_led5",, {, S* N; `9 g0 m

( f- ?# G4 W  g+ R. N0 f                .default_trigger = "default-on",
; Q; p- _" @: _1 b6 r
( T, V4 b7 ?: `7 T# Y( v% p; q        },
0 f1 g$ P7 e9 l) N% j3 `( S4 e+ ]8 o' g9 c# j/ U. T2 C* Q
};& K( k$ p5 k. [) t

% l6 W) e) S! R2 _1 v" i2 i% N/ b- C! ?) y! x' h# G
* q' `9 C6 x7 u& ]* M6 W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. D% N- X) l; G- e1 n- P
& V3 G: H/ U# f/ L        .leds = da850_evm_tl_leds,# W% ]% F0 V6 K7 O0 H( ]% [. R" y
5 n8 Y8 t9 E* |2 l0 ]  N  _0 V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, q$ f8 x" X5 ]
* z* [' L$ J, j) S, k};
5 j# J* m$ |8 k: j
$ p; f2 k4 J% h; l* J
7 B8 g, l) Z$ j! B% }  ]/ ^" w6 C( j4 k+ x5 l8 t' p0 @/ J
static void led_dev_release(struct device *dev)( [' u' r9 r& ?! n# D4 F
/ \. ~) u% h: D) g+ H6 R9 ]- {8 v' x
{6 x; ~" l9 I/ Y8 O. R

2 H# B# \2 {7 c9 E  w) I. ~};& u$ P$ h+ b8 g. @- N# f
" O5 H1 K# Z; Q7 n" i

0 K  H9 C6 L2 Z) w6 V6 Y  u5 b& W- C9 \3 T* L* h* l+ o
static struct platform_device da850_evm_tl_leds_device = {7 s. D" l( W, l

1 H3 C  v$ u% y2 s* H        .name                = "leds-gpio",; H  d3 s  y' R4 e! Q+ M
- l4 s  g6 _. F4 z8 U: ?
        .id                = 1,
( [, f0 Q) u0 B
; F8 R: [5 h6 Y0 A( _2 A. I& L        .dev = {1 f  g  M9 s- w. K2 ]
& x, p: Q. }4 V, ]" R
                .platform_data = &da850_evm_tl_leds_pdata,) U! o# M+ v- ~- B

4 L4 F. [9 {( k' v  D4 D1 N9 C9 ^3 D  C4 r                .release = led_dev_release,
. J; W( }; N2 w
$ V! d: Q+ t- Y4 I2 Y        }
4 O' R4 q5 P, ^5 e$ _8 W$ c
/ P' Q( n& g! E3 j8 a1 O0 B  q};8 W* h' S& q- T& C4 k
8 J- P0 u  M5 T2 Y3 o" \$ |

3 z* E6 b3 I! X" E- U* w
; S) k5 f1 j, F8 {+ A3 Z0 ?" sstatic int __init led_platform_init(void)* ]9 {& h, R6 y6 a$ o
+ ?/ G; e9 v+ u; K" B) q$ I
{0 W! F! U) Z: J  ?* F6 `
8 [' E3 F  q0 }! s- F. R
        int ret;/ E3 T7 s9 a- q: U$ D+ j: G+ h

1 \8 g8 E  p- M: i% \7 C#if 0
3 Y% P3 ?1 L! P" N; k
2 O/ [$ a: u1 Y3 e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* o  e! e4 X0 Y7 d
% c! }- E! x# r" W6 j
        if (ret)
' K* b2 J1 i0 ]2 W9 R
9 @. R3 R* F/ S; H' J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- Y: a" V* I" X* M% t, ~
8 ~2 V. r' m- h" d% A2 ?" z9 S
                                "%d\n", ret);
. ~4 _. `. B) D9 }4 ?* y( L3 q" P8 t
#endif
/ S8 c, Z& b- E4 L3 a. o" z1 n2 W3 Q$ A/ M# C; i3 p( B* ]
        ret = platform_device_register(&da850_evm_tl_leds_device);. p* e: {' _4 \! J
: p3 y, O( v  j' o7 F0 I/ `; i4 n. }
        if (ret)
& Y+ y9 W, F6 Z. p) t7 j. k* Y+ N9 v$ v4 l! c; @2 p
                pr_warning("Could not register som GPIO expander LEDS");' ?* a! e& W$ o
. j* j" C" u! m* ]- G- M( c1 m1 y9 Q% b! N
        else
4 |$ J5 Y+ q( A/ B5 y6 q
: R; e0 E; p8 q                printk(KERN_INFO "LED register sucessful!\n");
5 c! C3 |9 O& l4 r. D. n" ?: I' r+ H0 \7 S8 F
! K/ d9 z1 x6 S+ _; [9 p) q

# W* ^2 ^0 v/ P4 c6 t2 d, `! `2 r        return ret;8 i$ @0 N( ^  S: p4 J
' K. }+ }2 i! ~- B
}
) @! {" ]  V" T% h: `2 ~* h0 I. g) Y% N

5 _+ u( I5 v- {8 N% p; `! r0 I  \9 [8 {1 m2 d) B9 ?  `
static void __exit led_platform_exit(void)7 d* P' ~4 h! ~7 t

: G( `/ {7 q, L$ @{5 L* E" V2 e/ w" x0 Y; e4 w  S8 i
. E1 r; m) O/ x' K
        platform_device_unregister(&da850_evm_tl_leds_device);
% _" a% \5 g4 p+ ], ~! z
. e2 I% W, |# s. g- P! {6 L7 Q/ C
4 b. k  ?" X. }- W2 ?1 w! |$ X) b
        printk(KERN_INFO "LED unregister!\n");
* S  Y' Q& f- W+ f4 g( c( P! k
& A* S& |+ j- V}
% r2 `1 v$ e" W" E
- W/ n: N5 e0 j; R+ Y7 P5 o
2 Z  v+ ~1 J! n+ [: |/ h, F& I# d; C) ?1 b2 E
module_init(led_platform_init);0 Y  @; ~& K% j6 B- p) B

- u0 d* H, d% r1 C$ u& b5 Hmodule_exit(led_platform_exit);
4 \4 u. A8 m/ ?# j
# W' G- ~5 `0 W- ~
. W: m" ?$ g& [! `9 x0 d/ P# S) O: C: C* Y% J, h% ^
MODULE_DESCRIPTION("Led platform driver");$ k2 K# q' Y4 F, A  a- ?9 _
/ M& [+ J% ]) Z0 u0 w- q
MODULE_AUTHOR("Tronlong");
. i  F9 s' l0 U3 Z9 p1 m* w6 T; c. X" v- Q9 M" I
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
" V+ E& t5 B  e6 u+ Q' z9 J3 _% V

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32+ T3 }+ M, g+ T$ q) q; {$ V
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
2 M; \: ^1 A+ v/ A+ c ...

7 u4 K6 }$ L; q* N+ M( y好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。8 X# _' D& Q' d; J
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-2-20 20:30 , Processed in 0.045744 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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