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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

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

5 m0 f0 |1 A6 l+ b  T, [

本帖子中包含更多资源

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

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
  e7 R3 n2 \/ ~* a. [/ \  \: ~5 klinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
# ?# q: V, o7 G8 g* H; C
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:
; A2 J# b) Z1 d& j8 s#include <linux/module.h>
+ _! A* b; O, s) b" s7 q: s: b1 f( W" i5 X: d- r8 t
#include <linux/kernel.h>9 U. ]) c( ~( r/ Z6 Q/ R0 D( N% N# ~6 s
" }$ E% Z3 b1 @0 o3 e
#include <linux/types.h>) K4 R; T$ U8 r
* ~, F9 N2 J: K4 k$ Q* V
#include <linux/gpio.h>
* L/ {8 V+ c' T# p2 V3 S7 h
! y$ C7 k. ?" X- {# S#include <linux/leds.h>
6 u# m. g3 F+ q; c3 b, q! [; O: U2 Z" n! r- g  q
#include <linux/platform_device.h>
* O* j4 }  n) f8 x3 n8 {* Y
6 B; ~7 D$ l1 B: H/ P0 @- `+ \7 L/ [, i) M7 L

) f% X" w* k( k8 V& H: `#include <asm/mach-types.h>
- L' ?. R$ Y- M& S* {- {: k8 u' r* U( d  G) m& s' S& R' g1 r: M
#include <asm/mach/arch.h>
! c; Q8 N2 u$ N7 t2 E  t" N; w
3 T, p- L! x1 ^# ~, E6 g6 W#include <mach/da8xx.h>- G3 q, l$ _1 L4 q" ^) a
* o" `5 J) z9 J9 E$ {4 D0 M
#include <mach/mux.h>
0 G/ S$ [9 U6 Q$ p3 f
. e% R5 R4 g& G" o- w1 v' h; D; V; V
+ ]7 {$ {+ [. @* E
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), P3 P2 ?: P' O* \+ H5 }! J

0 ?7 A. K4 r5 p/ h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 V$ W4 m$ c$ I5 o" X& k
7 S6 Z( E: r6 @: ~5 A#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 P/ c/ L8 @( r+ U' w( ~$ s3 x( _4 J

- A) V, B$ q0 z, j) K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). e+ _6 X) e, f

0 W6 T; P  K. D+ s9 b7 |#define DA850_USER_LED4 GPIO_TO_PIN(6,12)6 A$ m- W+ g7 K

( F# X/ w9 Z. w# u: g#define DA850_USER_LED5 GPIO_TO_PIN(6,13)1 U9 s. N: O+ f8 e

7 U# a7 j7 Q+ Z' o
' E/ S3 {8 X( C+ @' P; l/ w; Z: Y: |3 p9 U
/* assign the tl som board LED-GPIOs*/
9 ~) b; A( f, o9 }: W5 m" `# ?# T) Y, X/ X
static const short da850_evm_tl_user_led_pins[] = {
4 k$ X& C2 c6 F9 e7 K8 w3 C
- z2 k& F) \% O        /* These pins are definition at <mach/mux.h> file */
: C# ^! ^  w* c* u
' h$ ^) X, F" j" I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
* W) H) P) n7 t. O  b& N5 {
' g, D8 h* u  Z) A6 ?  e7 O, S9 w        -1
# M0 ]* g! Z  P2 L$ G
. S0 _. w" q* f8 V3 V};$ G; R2 I0 ]5 k# X# d
. I0 d" c$ [6 V3 Y9 G
7 c0 G& M; i) A1 a% l

( d  z: R* f/ @: z; r! `static struct gpio_led da850_evm_tl_leds[] = {
9 A3 E+ U8 V* n- W: ~3 o5 G8 z
; o- G( T% x5 C7 U" u        {
2 n- i5 N! x) I! b0 ]% _& b( U" B
* Y: _' X" S0 T( S8 f9 R                .active_low = 0,
7 v! i0 N/ `0 v& k( N6 [! f; \1 r/ H# o% o
                .gpio = DA850_USER_LED0,
& ^" h0 ]# q8 K4 K  Y0 z5 k
* y7 X% R+ \) r3 P3 u                .name = "user_led0",
  O/ L  U/ u+ X* ?: `/ ~
% D! E" S, ]; T  m1 o/ a# {                .default_trigger = "default-on",, |4 c4 k! m) w' i, m; V

  S' }, `2 d* }6 k' w        },
3 i+ U2 k7 }$ W" N9 K: m; {) e, Q4 w0 r) d4 k* c: f/ k
        {9 M; B0 B9 `3 ]9 x0 N5 B

: r7 i  J2 e  s( S% {/ J- m1 \                .active_low = 0,/ [  Z3 O& W8 ^& o! S

: D4 u2 {- O5 |  j! _5 I8 k                .gpio = DA850_USER_LED1,! _: {! Q$ r% o- u

# N! c3 D7 Y* ~; C0 H                .name = "user_led1",
& O& O/ Z$ v3 B- k; d9 U. e  L! y% _3 O% t7 n3 S! a
                .default_trigger = "default-on",
: B$ o5 |( E$ E) [  g6 J7 N" o! E* v' ?+ Z6 F+ I0 u
        },) ~6 R, c( a1 [( i, u5 L9 ~
* H8 J5 d3 F7 W. m) t/ P
        {
" ~: [8 Y2 r/ V. a) G
$ h! w' X! ~- {2 m; L8 V: m                .active_low = 0,( B2 S7 u. M$ ~- U8 R$ l

$ ~$ V7 ]+ J+ _, u! {) m7 C                .gpio = DA850_USER_LED2,! N6 O" D7 {# k2 A
  y' P5 |5 `% A3 p; T. ?
                .name = "user_led2",
, l. n; h+ M9 f$ h! Q4 J1 R* t/ _% E9 y/ m( ?- U) ~" o
                .default_trigger = "default-on",
0 K( b, Y9 w+ P. }
" {+ B: R2 o# Q5 A3 I7 p5 A; F        },
( `0 {; V/ H. b: X
4 y; o( K8 \* w+ j% s9 F, [7 C& l        {
' Y% N* Z7 x2 `8 |. p+ J$ ~# ^8 j# ~5 b
                .active_low = 0,
9 x/ F' S' Q# R$ J4 j8 l5 Y9 M. [: n% d% e- ?  U
                .gpio = DA850_USER_LED3,
4 A6 H$ L7 J0 \* g8 ?6 |. g  T
2 C: E, \$ V1 P% @0 D$ f                .name = "user_led3",6 l! B% z2 u4 U: K( {# [
$ P0 _' X/ B# y; e/ d" D! J5 A; M
                .default_trigger = "default-on",  \* _3 a5 ]1 ~  ?2 e% B$ q
- q/ L6 \+ A$ d$ a: T0 @
        },
  t# Z& Z( J1 z' g7 D( e, E" S6 G; A$ ]2 e- N% G
        {
% Y0 `& w# f9 X8 P8 i$ l5 ]& \  K
$ m2 ?$ G0 E( n& s" `1 E3 {9 X2 d                .active_low = 0,
' H! _9 }$ x: S3 N& F) J0 Z  h2 [( E' h) d* T3 H7 ~
                .gpio = DA850_USER_LED4,
" u5 N( I3 }* R8 [0 }0 |
9 G4 u, A+ T- O  }3 v                .name = "user_led4",# L5 V$ S3 d  `' m
3 D( ~3 X7 K: ]0 R
                .default_trigger = "default-on",
& ?; \% h3 Q9 V- y* x9 ^6 l, G& ]( U4 |. b
        },
: x+ n' C7 x! F+ A, }  s- P" o( b+ k
        {
2 m0 `0 C! V/ S) s6 c" d1 }( E# p6 G  H" H) K$ f
                .active_low = 0,( m0 o( c# s) s) B
# j6 \  u# _; e  m2 C3 q
                .gpio = DA850_USER_LED5,
/ J& o/ I, s4 F/ Q% ?/ ]3 K# i- l0 p. {
                .name = "user_led5",
& H7 a, O9 P2 u& Z
/ I' K* g& g8 b& f( r- h3 Z                .default_trigger = "default-on",
7 O1 w- m+ [3 B- d* Y& ~
% [3 F% ]9 o6 _; O& m& x        },) ?# t1 u  F: Z

3 @4 V; X9 o+ ^7 M};5 p4 c- L. t" S3 k
8 p% t" N1 x4 N. O4 Z( O/ A+ F
1 T  ~8 u  x  D& }+ W
8 ^3 {3 e* a4 q* F8 y) E
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& C4 ~4 b0 }" E7 x. ]& Q

+ e5 P0 P- H8 A) x* R8 G        .leds = da850_evm_tl_leds,, }% Z, t+ E0 j. A+ U' J

) f+ _" w/ g& g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. o, L% f6 k+ I* J6 C0 t
3 ]/ f# E" y8 C7 ]( \};1 ~* ?: B2 U2 |* s$ N* R
& ~9 @+ j( V( t" q

. y2 ~3 Z. _7 m% A0 d* `; c/ z$ R- w( k' b% l7 N
static void led_dev_release(struct device *dev). U+ }$ B. R& z

6 S. S, e5 [$ ]{
: G5 @. S% O) r$ W6 X) H1 f
# N: v& V( Q5 j+ l};0 s5 C  {# A) j4 P, D/ G

5 L1 n; I; f0 b6 \0 n( p* n2 y" K2 Z  p3 t
3 `* H$ l7 ]; G+ L8 w% W! I7 A% t
static struct platform_device da850_evm_tl_leds_device = {: F, ~9 H% z* N' u9 ]

! B4 n1 I* n  F3 \9 r7 b) Y% H        .name                = "leds-gpio",
% ]/ l0 d. ^8 H8 v' k0 E4 T
, S1 H$ R# t3 N: L$ r2 N        .id                = 1,
; G/ I. Z# S. ~8 z1 ]& W0 M4 T
* a/ K1 z* L% {( S        .dev = {
, q1 p0 N7 D5 T1 E& J# O# t+ o6 y  c+ A0 d! {/ V' e, W7 y4 |
                .platform_data = &da850_evm_tl_leds_pdata,
# I8 R  D, R  S9 o* B4 k8 |: k; z" o6 h& W
                .release = led_dev_release,, u& h4 i% S- u( _7 O, o1 `) p

/ D+ M! `) o- I/ _        }" ~" R/ ^! m4 E# E  i

. _3 F" O% _" W. `% z5 n" T; U};6 H, J4 ^5 }1 Y3 ]) ^7 j7 Z7 `

/ a- @" G4 V0 {5 S+ Y4 i* ]2 y: m- v4 [2 K
4 k  l' t9 A1 ]' x4 k
static int __init led_platform_init(void)  U- o* T# ~4 P
6 P% N5 @" n) R1 I- Q5 ^) Z
{
* F9 L- }) h* x  ^  ?) C( R$ L  a/ z, S- q  A8 n1 @! }
        int ret;
6 F6 M* c3 Z6 `6 D% t# G
' {2 q0 I, t8 V" s+ w; w. I#if 0% J9 E$ b( Q/ ]! w6 p5 H4 H9 J! \

4 @# q! a( q/ v8 M" d' q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ?1 q, Y% Z7 N; I8 w/ P* U3 |: O/ e- I8 G0 t; R. L! b
        if (ret)( {5 S7 `2 ?# z# h0 [; r" D+ F
( e6 B& X* ^4 q% q' O% b4 U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 }% e" }7 ]* F* ]* }& o+ p$ L( G  M
                                "%d\n", ret);" ^9 R& m4 |. q
* G+ O, @) [! X$ Y
#endif* X& C) p% x' i
5 S' S& U. g6 t$ \6 u$ V( {
        ret = platform_device_register(&da850_evm_tl_leds_device);
, w: ?. K5 r: ?) J' Z
9 H5 w/ ]; j) p7 |3 i/ r        if (ret)
! I% y( f: q# c8 R1 [' T
4 d% t0 N" X7 g2 ]! o                pr_warning("Could not register som GPIO expander LEDS");
7 q; C% ?9 i1 p7 s* m% W  o# G1 r, v" o* A
        else
) \( {! O' f% s: N4 l7 j# l8 a: X9 Z8 j
                printk(KERN_INFO "LED register sucessful!\n");* m! \. ^( v* |0 d2 I1 f$ d7 f% I
, W+ X/ O, {, ?0 a# h2 E
7 {* H* t) g; z8 j: A

2 N8 V+ y9 m# N9 R: L+ n! E        return ret;" i3 v, x3 f& h* \) F4 C

$ D8 Z( o9 s  R* u# h2 ~3 v}
, p' w$ \" w! T
: S5 J  I0 C& ]6 a( P# ]4 g3 [
! P; N* D3 R! v: T5 s# B4 X. s1 K+ b4 j) o
static void __exit led_platform_exit(void)& z' N, t- ^$ _& z3 _

' q1 c! D4 T- Q; o& Z5 g{
  k% }* y: V( V; b9 R1 u/ g$ W! V8 [  I6 \. ~
        platform_device_unregister(&da850_evm_tl_leds_device);
$ n% i& u! c- T6 X3 x: [% q+ @% y) ~
) j6 u8 m, }4 q8 v' \1 @! Q7 n6 w
" G: w3 T$ N7 F# \; o! F( k$ L1 j5 R# b% p! U1 d$ H
        printk(KERN_INFO "LED unregister!\n");3 Y+ Y! n* w5 k3 C1 A

$ l& \* c+ R9 I" _/ i- ~5 v+ W}& L# Q2 u# H( B9 u8 l2 L& k

/ C  K; `9 p% p  u8 O# ]' G) N& |; ^* s" p& R5 j/ O' i1 q" u6 U

3 I- ~, y: v$ g* a0 dmodule_init(led_platform_init);
, x8 b0 H. C7 p" ~7 t- R% R" j% x, i9 R& l0 u$ U0 p
module_exit(led_platform_exit);
7 V* W, |3 V) L6 u8 }/ p8 R. b8 W: G1 y9 t

8 s9 l+ p  W; e* I! R5 @9 a
- q7 S: z; `+ i# f5 j; v+ ?! MMODULE_DESCRIPTION("Led platform driver");
6 k. n0 ?: E6 P7 U2 O3 |, }- S. B% n: J
MODULE_AUTHOR("Tronlong");
3 @6 Y& T  R) m7 O7 M) F
% y" G: \* n- OMODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
- w( V# k3 w9 P  U6 R

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32  m7 b3 e3 V* u  q- w1 e
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
" x0 k) r8 l( w& H' p ...
! w4 k- {) O  e% E5 {+ }4 S$ X
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
( ~; Y$ K5 o- H% Y9 Hhttp://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, 2025-11-27 07:48 , Processed in 0.046800 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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