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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
* L7 ?" a' j) s( T) Z2 d5 K  Z3 Y2 ]# t4 p3 M# ~$ @% ?3 ]
请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
; a; F" a& u+ B1 C
4 _+ e9 t' i  Z. N# S9 V之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?
$ y' h3 X' v" J) C! I$ X" `/ F5 M  ~0 I+ 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:14* O+ q/ V' m7 K6 z( ^- s* Y6 p2 s" i
linux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
- w7 w9 Z0 I0 O
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:9 r& @, C/ H( T: `/ c' {% i
#include <linux/module.h>
- X) V: W% _( J6 D$ z
+ E- N# L) j# W$ g; v3 v2 t/ J$ u+ e# }#include <linux/kernel.h>% K" w% Z- p0 D# ^/ T
) H4 U/ p" C) p  a% ~2 b
#include <linux/types.h># d" q% i6 _& Z( z

% l9 k  W- r6 \  |3 e& M#include <linux/gpio.h>
7 ^  D/ M  C4 ^( p) j; A' y
, [+ [' A5 x. P1 }' e$ d#include <linux/leds.h>/ Q- \) W4 `8 O. [4 R* L9 t

$ H( e9 T+ c/ D) c#include <linux/platform_device.h>, w$ n  X8 v9 l, w0 Y! e$ p: @
; J* ]. M8 M0 g4 H1 D
/ P3 I+ p5 e+ n( n. d0 A8 X' x' y7 e
" M5 k3 @! c$ O/ V: v) e
#include <asm/mach-types.h>5 O6 N  E3 q% z# S* O; U. K! X
; l$ m% B( a( M, W: T# P, i
#include <asm/mach/arch.h>
2 i3 }. h: U, I" O! s1 G7 M$ A
/ h! a6 s0 M7 w9 ^& a1 j7 z#include <mach/da8xx.h>
# Y) W1 a! Q0 b1 V4 R! N- ?6 K# E7 L/ c. z) ~5 f/ f( `- m/ s
#include <mach/mux.h>
" n0 R0 M4 Z. Y0 g3 {( E
# z) B( J+ p: X* M8 a3 k- b
% ~* E) k3 @% d$ Q
, S( g/ @5 |  r6 P#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  }& f9 s3 A0 F% ?' u$ d) o' m

  i  l' s" l' B1 d#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ Q& I' j  ]3 T( Y* M  n
. T; V  |+ p6 t" h, H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( `* n0 V4 G) Q0 @0 e
* U6 F0 E/ q7 n2 c5 y& y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ \! m8 q2 i) Y; W: o2 ~  v; ?
#define DA850_USER_LED4 GPIO_TO_PIN(6,12)1 o1 Z8 d% W1 Z$ r2 n1 {% z# Y1 @

1 ?: Y* }  f% I1 \#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
" `/ L# Z* B3 }. I6 ]9 W6 [2 l* v% K8 t0 d( M# G
: |4 Q1 f' f6 G* Q, [; m7 @
# c. n: B' o; |2 M4 s6 [
/* assign the tl som board LED-GPIOs*/4 _. e1 p7 B: Y1 F; C

9 {. k0 W) A# D% E8 u& xstatic const short da850_evm_tl_user_led_pins[] = {
( Z0 L# ~0 y0 w+ |) N! [
& S% F/ o" I6 D' X5 C        /* These pins are definition at <mach/mux.h> file */' g; U# e2 i- o; t5 J3 [
1 {' I5 U# I# K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
# i3 q# `  U6 }" L% [* G* q4 @
  K7 [6 W1 |9 g) O        -1' ]  S) I' R6 ?4 |2 }) a+ B- c
/ [4 z+ P5 ]* c5 E/ _
};
0 g/ v+ J+ Q9 g. I
# K* J, Y5 w; ~4 L. Z( U7 @  c, n$ d% ^6 ?3 z  j: Z

: w* B2 e% }6 y7 r: A$ ]static struct gpio_led da850_evm_tl_leds[] = {
9 w! ?' D7 |- ?9 Z8 b7 U# ?4 {  [3 _, f( C; ?7 d9 J
        {
' j9 F  p  e/ N( N3 E8 z
9 {" z7 \0 a' ^% S) B  Q; h, e& d                .active_low = 0,
/ r3 [0 v& g5 i. ~4 p1 s! L+ ]1 X5 Q1 V8 c
                .gpio = DA850_USER_LED0,+ H! B7 \: E6 `% R/ s7 ^
9 U' W/ q) j' e
                .name = "user_led0",
! f" |9 V4 q) B6 x: h1 I6 F6 C
, Y9 L& |" V3 j+ a7 ?1 b$ y                .default_trigger = "default-on",
1 q# V; K- g0 b; G5 d! G2 m2 j/ j' i% ]
        },6 E$ s& ^) L& p. S# H, Y" R0 _

, J! B# y1 \- I! L7 ]        {! y% P  X8 O* B! Q7 a2 M/ J

: ?1 u7 r: t( G( P7 v& U                .active_low = 0,! b! w: [4 _" {$ S. f

  Y& H) B* \4 ]2 ^! s                .gpio = DA850_USER_LED1,
% E) H4 P0 o& [$ j6 ~# s* q: [
; p2 `% ?% S. l3 b" r                .name = "user_led1",
. B$ G) n! A$ d- {* K) c6 W. ?0 a4 h! A+ X
                .default_trigger = "default-on",: a. C# N" J) Q: R

% r6 Z2 f" ]% }0 h; ^; Y        },
2 L. T) m, z7 a- S8 C; u# C, b: P/ H8 `
        {
- G( |- }. C% _. w/ `+ x, p5 Z9 n: Z7 B3 X6 U
                .active_low = 0,
9 K5 |) Q6 c0 g8 e
& C' c- h7 [7 S                .gpio = DA850_USER_LED2,
$ p8 z: C' c' A  V$ {/ ^- v7 G  o( q8 b: z
                .name = "user_led2",0 m" l$ Y+ Y2 }2 ~4 C; X

5 }4 `) v" Q3 D0 s! `  {, `, J1 @+ f                .default_trigger = "default-on",
( t) V% c0 q! A
4 E" N! c8 {" ]8 g# ?( l$ }        },
" n' b' Z) x* I. ~# ]3 T
' N$ J+ H! g2 t; q) n% ?        {
2 S( S3 C# |( E; g: u  \0 i5 T% K1 w7 V
                .active_low = 0,3 x& ^5 C7 k& ^( \% B% k
; K# E3 M, e' B) u& U7 F
                .gpio = DA850_USER_LED3,
! E' M# T( B( w9 k/ C/ n. F4 ~7 J6 l$ q
                .name = "user_led3",0 J8 v5 z+ T. f% D* A" O
- e# Y; U+ S6 |/ C% T8 Z
                .default_trigger = "default-on",6 P/ v1 E" O" A( H: s$ F" `
0 }: o4 c! k+ D# u# ?3 e
        },- a" w5 n8 G1 r0 |
* d7 `' B7 _; D% {, t
        {
$ t, Y2 \4 X0 O' U; @
, f! C7 K! J! ^                .active_low = 0,. C; l: i* C! W* l
7 Z3 }5 C" U! l4 c1 C8 Q
                .gpio = DA850_USER_LED4,
% I3 z" o, ^2 M% |8 O: S; E" n0 G) w) D/ E
                .name = "user_led4",% J# Z3 i4 w0 ^; j5 @. n: t

+ Z& g7 w5 ?  {7 V                .default_trigger = "default-on",
! Q, \# Y1 ^  J# i+ q- x+ R  w+ v
' y3 o$ _  O# |        },
' W) j+ b6 z0 ^( h1 l7 m" }# i) Z' F5 X- D. `
        {! i2 z) J4 R, |$ I% N+ a" u
  w0 `4 W# }) L' c4 O3 R7 F
                .active_low = 0,- ?, h% ?- w" c4 x3 w
9 a( Z! K! d6 \2 U  I; s4 h
                .gpio = DA850_USER_LED5,+ m0 ]9 ~; e8 R4 E. J- h
' {3 A9 j5 v8 x2 f" [
                .name = "user_led5",+ G$ V) r1 w1 _6 ]$ j; S6 p/ M+ B
9 V& D9 n8 Z' a
                .default_trigger = "default-on",
! m7 y, H% z5 |5 q$ f. P$ A1 p; L1 I; P" p) {, E
        },( v& H# n7 k9 \5 F+ M) x! O! ]

9 u1 [; D$ }  b/ {3 Y+ p};
+ ~! ]+ T+ X+ ]
" A! J. h1 ~! W0 h# a3 @+ D
6 X8 f, i5 k) d/ r4 s8 C( k8 ^  W1 A& G$ V# X! ?( o
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ g; A* P0 m7 q7 z% w$ p$ W
7 C4 i/ Y# V9 u, |. x7 J. h' k! u
        .leds = da850_evm_tl_leds,1 Y% P4 i$ G' m* o8 H0 [
" i2 S5 \5 l7 v" F5 H- h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 j7 Q0 w4 F8 F% m- H
& R6 @8 d% h' i4 k+ |2 O1 g9 w
};7 K) M. X: O" h+ s# o3 W, x0 O
7 K7 {+ r1 t, K' h' i- g- G' }
- B7 N% \+ a# u. c4 R

) e( }" m* E. {$ |% V& D" j+ mstatic void led_dev_release(struct device *dev), O5 R9 Z6 p# k3 d: w( `

$ f. [1 m% R* Q( F3 P{/ @8 U2 r0 N8 L1 e: B
: r" J/ x2 u! U  g  A
};
6 `" D  B* Y: I. O) f) B+ h! U! p( F/ X  I- W; Q
+ w4 a3 X& h# O! B: h6 s1 _/ [

; \$ d7 U* _1 ~! b0 D9 b% W7 Lstatic struct platform_device da850_evm_tl_leds_device = {
: K7 c" s7 ]) K2 q  X4 e5 z9 ?
; L: o7 T! O& ~  h5 t% M2 O5 l5 ~' Q        .name                = "leds-gpio",
! d/ f+ }* g+ U" E9 j1 L
' E1 S: l/ \2 b% X: p% A3 w" C        .id                = 1,) f# {# F/ g* Q$ G6 Z) h

/ a( ?  i' i8 {" l        .dev = {
' ?/ r+ o* K' ^" n& g, e  [5 o/ ^1 Y) v8 u+ g+ D9 X
                .platform_data = &da850_evm_tl_leds_pdata,' T, v4 o7 n/ }0 r

7 Q  s6 z) M+ J& w                .release = led_dev_release,
" F! t  Q' Q# ]; e$ h7 l7 Q# n5 Y# d7 ]! \. ~
        }0 j9 d5 A9 i4 U4 g) n) G4 n6 a
. \6 w& W4 q9 B5 [2 S
};$ B6 X% J1 y, I
7 R. s5 V+ f& u7 x! D

- ?" {, r7 N6 |. f# M' ?" R  V$ U9 s# ?7 s: r# }. ~4 q! e) ^+ g
static int __init led_platform_init(void)
8 Y- u) i9 m" f3 z0 ~
1 O8 p+ j% ~: g8 M" G" E{! y. c! v! P2 O" {. p
1 O* e" b, @$ E% n# N9 P! a5 U
        int ret;
# W1 D1 N. r) x$ X; r6 J/ E; q; o9 \+ I( h
#if 0
  a2 f/ m" D8 n: ?) }  |
' B4 ]- p9 S! d" T! x1 s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ s; w' a; Z/ M: B. p

( Z5 t8 }. p; ^: o0 U( z' j        if (ret)
9 j( b. X* x- V, H' H4 [9 j1 e( m9 r+ x" s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" [% ], u( U* F. K

2 o& J! k- D3 I* g' J                                "%d\n", ret);% |7 s6 H( ~8 k: h2 g

' I( x* S; ]' H3 e! A% r#endif
' T3 n# K) a- n- ^* D2 |  w
" V! H+ u* o, h" j5 F        ret = platform_device_register(&da850_evm_tl_leds_device);
' `! K6 D5 H: q
% Y( ]2 t+ Q2 O# @! |        if (ret)
0 e% X: H0 ^9 s9 {7 G3 E8 y+ s" y, B" i' E
                pr_warning("Could not register som GPIO expander LEDS");
# i7 k: W3 Q$ y  M/ ~- }0 r6 K3 A" m
        else
/ a' C/ q) H7 l' A
; M2 G+ j, E* F! g9 ^8 T. u* n                printk(KERN_INFO "LED register sucessful!\n");
4 y" K2 a; ^. X+ [  A8 e4 \8 u" t* O+ \5 h2 q( b; m& w- D
! L5 i6 v& y% B. g0 L1 v
3 Q/ K0 k; z$ ?: P" _  ?6 }
        return ret;1 s, C3 h( X5 D/ q0 K- C) f
* D$ \1 r/ @9 f3 U: R/ |
}
! r% v, k" t9 G: V9 I6 _! l  A) c$ _$ n; [% f, f) G$ S
7 g6 \, F1 o; k& N* Z+ x# G
) r9 o7 Q4 r: _# @; j3 B' F
static void __exit led_platform_exit(void)' y7 S4 \) y* Q( G0 }
. y6 q* l$ Q* t8 o9 J
{
7 m3 d2 t7 D" L, V4 x' x5 u4 d0 b
, [- h% s" [2 ~& J- z4 e        platform_device_unregister(&da850_evm_tl_leds_device);% J- _1 V* o( O* N

( d) h" U7 r3 m3 P9 N( V. l
/ `% R* a  Y' ~( }, V! c  Q5 B$ g- t. |9 x- o2 C- w* b: X
        printk(KERN_INFO "LED unregister!\n");
7 x( C$ o- @6 \* A( W
9 c; y, M0 L" _! m) U5 t}3 Z8 l3 `' \1 Q
: f2 t) ~# q/ H  e  l( @

  t6 c( ~+ S# R  D8 r8 ^
* t& Z. @! U1 v- \module_init(led_platform_init);
7 \* k  ^- o$ U( w! Z
: z$ |$ t& O% Y7 I  t3 g+ imodule_exit(led_platform_exit);
, B4 A8 t' ]* u5 p; m+ M/ E
- [, J) j6 r" b: F7 s2 G, N9 u
6 Z8 {) g" W6 M, K! ?6 @' Y, a( A  r4 e! m0 f; K
MODULE_DESCRIPTION("Led platform driver");
0 b5 T2 X; q) `5 }* _) a) i9 j* S- J& `
MODULE_AUTHOR("Tronlong");
) X8 J1 H6 K+ u) G- U" r& T
8 S0 _0 j% d7 {( D5 [MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
, ?8 B' c5 ?  @1 U1 e3 q

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32
! P0 c$ c% J2 S" [$ {您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
( b# o/ Q9 ?5 ]; K  _# r1 e ...
# e: P0 y3 ~0 K8 P' `$ v: E
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
% N9 [& u3 R% Bhttp://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-27 18:03 , Processed in 0.048792 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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