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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
跳转到指定楼层
楼主
发表于 2018-12-14 09:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 红线绕指柔 于 2018-12-14 15:33 编辑
: o" ^, Q# M; f
6 |' [6 f0 f& r) o- T& Q" J3 e请问一下,如下图所示我在CCS中进行裸机程序的开发时直接通过带边相应寄存器的值来驱动LED灯的亮灭,这样是可以成功的驱动灯的亮灭的
# \3 z$ G# S5 T( k4 s& N5 A
4 i1 U$ }0 F- h4 w+ _/ u之后我将该段程序移植到Linux系统上,使用指令arm-none-linux-gnueabi-gcc LED.c -o LED生成相应的镜像文件,复制到SD系统启动卡上,执行镜像文件./LED为什么会没有现象?请问是缺少了什么配置?7 R, y6 P, }& S3 \$ T5 G
8 `8 h8 f. \' A/ b' s5 L5 ~

本帖子中包含更多资源

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

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
& M+ H$ y/ P" _8 E" F7 Wlinux下用的是虚拟地址,应用程序是不能直接调用硬件设备的,直接操作硬件设备的是驱动程序,建议您编个驱 ...
) Q% N3 b* [' }/ H" g& r7 u
我倒是知道需要编写驱动,主要问题还是地址的映射问题,就是在驱动里面如何来实现地址的调用,我看你们的LED驱动程序里面也没有相关的地址调用问题啊,如下列的你们提供的源码所示:/ }2 g3 v: b7 X& R% [) _* ]
#include <linux/module.h>
7 r# z4 X# B; }4 Q" q) I4 J. C) @
#include <linux/kernel.h>
* W+ }, _) _5 C9 K. q# H7 n) ]& b1 n5 B$ [
#include <linux/types.h>6 S4 D( {& I# f7 s' A
# }# s/ d; w4 o" u0 w
#include <linux/gpio.h># N; ]! x- }5 G' t( m, c; J) J

) W+ {5 n5 c  p) A6 g1 c" ?#include <linux/leds.h>
0 ^6 M) D+ `& s2 a  C" n1 [; s; A% W% q4 V
#include <linux/platform_device.h>2 k1 \* u0 t( K$ L6 S, }

3 x5 o! I2 w2 j) D. W$ d  U. s' T& [$ f, x: S0 {

) I6 T+ g  S& C+ A; X; p; P  i2 W#include <asm/mach-types.h>
; q- {( \/ A: \! }5 X. V. @& s2 I; C* b4 v/ Z
#include <asm/mach/arch.h>
$ T; A& \4 J: z! R9 S8 y& K9 b8 j0 V
#include <mach/da8xx.h>& |+ J" q9 r* u- E0 w
, }0 z! S8 o  W2 k2 P6 q0 d4 i
#include <mach/mux.h>
* Q+ V  A! I% d4 U! y+ z  }
- y& y2 F  E9 p6 ~. U/ E1 d9 M+ w! Y, d, a" w4 s. \
, B( e& V2 q7 Q8 J5 O/ S( L5 e& U3 P% T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, |6 \7 y3 l: E+ F% p9 K8 x
/ `+ A- h' C$ H; p" E6 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 d( V5 o2 H) m4 k6 C3 x2 j; o
$ b( B4 m# n7 d% ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! i/ U+ p+ R% `' P  \" r2 y3 R# o/ n" a( M4 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! ~: f  w! |4 N# B0 L& b4 G5 e* P' A

6 A! d2 m$ e% x#define DA850_USER_LED4 GPIO_TO_PIN(6,12)
9 i, {! I/ Z( w; L3 J& ]: c: c
6 n# g* @8 R' S( U, O5 Y#define DA850_USER_LED5 GPIO_TO_PIN(6,13)
! O5 j" g, E! @1 d  X; T2 V
/ ^# J# r( x* K" ]
9 h: b/ L* C1 M+ r' V  M
* J- c4 _; A5 e1 {9 O6 X/ Y/* assign the tl som board LED-GPIOs*/
$ ?5 @$ J  Q2 ?! e' i9 I- X' Y. z% J  F. P: }  ]* c; G
static const short da850_evm_tl_user_led_pins[] = {% t3 P0 x/ H1 w& `- R% d

0 l3 s( T4 }' h/ A        /* These pins are definition at <mach/mux.h> file */  h, ?' G- Z  e

9 ?% L4 g$ X9 H" j0 r+ f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,DA850_GPIO6_12,DA850_GPIO6_13,
/ n+ j. Q9 }+ {0 R' R4 ?# {; r3 x
        -1
# m. `  Q8 c3 ]) j; i& h9 m2 T3 F1 s9 ^# T! j
};
, S  j# ?: {/ y2 ^- Q2 r- _
# ?- L  w1 V# z: u
$ Y- o' X0 ^2 I! a4 f' ^7 }+ E
% Y. Q! |) j- b3 m) Hstatic struct gpio_led da850_evm_tl_leds[] = {
  h3 T7 c1 H  ]# }6 [. Q# D2 e- [4 M' j
' x- F1 W, U2 z( p        {% \* h) W, s' Z# k8 A7 s* |9 }. M
3 X1 p& u$ a- T% j9 V9 b5 w* ~
                .active_low = 0,! o. r# H0 R) N+ ?/ {

) u; u* {1 }, K# I                .gpio = DA850_USER_LED0,3 D! p& P& m# O/ A+ ^

7 o3 |( d) |1 b& a# z6 o                .name = "user_led0",6 b0 m' ~  R4 h% f
8 O. J% r1 v. L' j" Z! j- ^: O
                .default_trigger = "default-on",  m# R) ?  Z# _) H

0 f* J7 t% i8 U" L, m# Y6 H7 S        },
2 I5 o$ K1 o6 B& f( R% L4 ^! u. E
        {, v* U9 U/ s, w  d
7 u' F. z/ a3 ], s& W
                .active_low = 0,+ q+ F6 S8 s9 |$ _2 H
7 O, O  j* j# Q, J/ {
                .gpio = DA850_USER_LED1,
: v4 C# ]3 x: |8 l: z2 U: D$ _6 x+ k/ J3 J& X2 v
                .name = "user_led1"," `& }9 P8 L6 E. h* W0 e/ K
3 i" _5 U6 U) w( |% a
                .default_trigger = "default-on",: m3 S/ ^+ }$ P- p9 ]& o
' n6 J/ }9 N* Y3 J  Z1 _- m
        },
0 [  n+ L. r& Q$ e& i6 |2 H/ ]' P9 A9 G  J  `" Q$ I
        {' P& _- b* v: B& \, Y* F+ I

; g! }# ?$ ^9 ?5 {1 d0 X9 d  k                .active_low = 0,
. H4 F, {( Z" I' y$ B6 s
% p7 _- T2 L+ h5 d' N# l, ]2 w1 O0 d                .gpio = DA850_USER_LED2,! P: I: p, K$ T7 f! y" X) Y' c. ^1 V

. z  d! e" f1 ^( U                .name = "user_led2"," @$ n" {8 s" E# s! Q  p* d" i& i4 x
0 M4 {/ t1 w; b7 [4 O. [  |! z
                .default_trigger = "default-on",% i5 n$ E% S" V3 R4 ~9 ~2 L

, |: t  p) `( r        },
1 v% B7 S7 Q* S, V* Z' U: @7 X
  E! A  A$ v# i; b) O( h& o; r        {
( m( G, w9 z' I  ^
4 T; q: b* V. g$ s; `  s/ `+ H; a% P                .active_low = 0,
' Z) j& v9 u6 D6 V9 A& M& |
- r+ O/ M) v/ n7 S4 U; W( d& I                .gpio = DA850_USER_LED3,
& n9 U; M4 K6 {: [( T6 X  v2 D& [# T3 Q
                .name = "user_led3",
6 j0 N8 D- _' a( K5 `: z. K4 Q5 k0 k) C* [% x2 X4 r" p; F4 e) @6 P
                .default_trigger = "default-on",- y' [% c; K9 _# U

6 D) S( ^7 _' ~, z" W) D; i        },% K1 i. [0 ^# O
2 v8 D( A1 Y# H/ i: d9 Q8 }- \
        {4 m  X# W" V) a/ t2 S% t& u9 A
, f* Y7 U; V$ _  X0 E
                .active_low = 0,. m+ b: w7 }; ?* w" @

& q; R4 X6 f$ K3 M                .gpio = DA850_USER_LED4,
! @3 X* H1 j5 x# }& T
, J3 m* g' O3 i+ u' t                .name = "user_led4",& V: t% S9 c2 f* F6 t1 j3 n- R

7 C1 c' B) T8 l1 c7 d/ o: ^5 {4 ~                .default_trigger = "default-on",, b3 b) @- {0 C0 [9 W. e' K4 h
9 s8 R* h; n' J. o+ U" X9 X' v
        },- p! L1 h& D& M7 a7 E, }& W

  W& b( ]! b' l        {
5 i$ S% o8 `$ Y) O( B
% d6 R0 ]9 D  q# d* ~5 L1 k                .active_low = 0,9 C& \5 }; `& L# F. y9 H2 Z) k5 n

  b6 q' H/ ?: B0 U2 k                .gpio = DA850_USER_LED5,2 p8 b. ?& m' h
) q7 P9 D3 L% e5 s$ r: X- h
                .name = "user_led5",
& y8 L! G* D0 p  g' N
- p# ]3 T0 `& j- X# }  g                .default_trigger = "default-on",/ x3 U! ^: z7 X0 P! r4 T& w5 x

! @' u6 Y" u, e; Z' e3 C        },
" @: b9 M% v- Q0 K
: U% W5 p2 O& S  t+ u) X};
! b+ z9 T" R6 Y2 W% A
$ g% ^: D% O8 q9 {8 X2 A7 u& P( P
/ I0 q, z! [( w- P! o9 @
% `7 T3 i. x% b6 ~& V% hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" w9 F8 L! |5 W, k
( J! o! Z' d8 C9 }+ l1 z6 d& G        .leds = da850_evm_tl_leds,0 o5 q5 w0 L1 O4 t$ I

+ u1 n2 w9 ^8 }6 m1 q# N, u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# f, T8 I$ ]7 r2 k, _+ C% ?1 i
. O- T) _  b3 a: P( M};& o7 _) ~4 W: Z) w, p. s

$ Y$ z" `4 Y2 q5 o( p
9 |1 _, X$ s% `$ X5 N$ u9 o3 V- `
static void led_dev_release(struct device *dev)9 a% c5 J# o' s  p& ~
7 s9 E. L1 X. }3 Z& h3 p
{
% z9 P; r9 e. K  i3 K
9 E- [% B" ~0 F) j( l};' h7 o* D: _# W& N, C. \1 `

) H9 @7 w5 T" q- ~3 W, d7 V, v: K' }; ~. J) x1 n) ]  u; W

8 Z, k$ ?. F; ]) [5 }$ j8 U- {static struct platform_device da850_evm_tl_leds_device = {
3 F# r! E$ b$ U- L: V# |0 {  y, {, u' b6 |6 u( v6 l
        .name                = "leds-gpio",1 K9 ~0 m) u! s
& l4 B- h! O5 c  t0 X9 u" B9 l
        .id                = 1,
- W& W4 Q5 O( j' d$ B0 t6 g
0 s% ~' e3 x1 T5 f# x$ z        .dev = {
) I# S; ?4 ^1 D! A( u/ z
' j3 E; g9 S' f$ B! f7 e                .platform_data = &da850_evm_tl_leds_pdata,
$ Y$ b( w& Y' [9 F/ R% S' l; f- E( Z  n. W
                .release = led_dev_release,0 W$ ?) w; N) s: @2 l
4 O" X- I3 d) E$ r/ i8 g
        }0 ^& v  j3 R" U# @! F  s
3 a$ J6 y4 k) P8 v; _* R
};
2 x% }# A) l. V/ U% q, i: ^$ W6 O
/ b5 h4 L; W4 V9 @$ o% o0 o# O' ~) B% C5 G

0 a5 U+ L) x0 c( d' s0 E2 e5 vstatic int __init led_platform_init(void)3 K9 S9 a9 e) K1 Q) @% }
& s6 k$ @% j" q
{
# v& Q; s( {; u
9 U2 M4 j4 Q( \        int ret;/ j, [5 k+ O& D4 Q$ Y9 R  f

; E) c+ C' F1 V. m  w% G#if 0
! V! x/ W8 W# `8 Z; l& g
2 K3 \/ o" n$ P: L3 P: m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 H) V% F0 B2 s# Y
" V1 d) x- z: R* O1 x1 s( L( ~$ ^
        if (ret)) o0 X7 x, G# p% f
8 o7 O% T2 z, K$ T: c4 ^4 V, c7 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ~9 |# {) @) L) t0 q

' ]" t* }5 c! h! m6 n, |                                "%d\n", ret);
) ~2 O; r2 ]) u% s' u$ V' f0 |
6 e2 a- Y( W$ N& y#endif6 _3 d2 L, |: {* ?! s; N* s; W

  S1 E0 z( R' x' F* ?$ I  V6 W  K        ret = platform_device_register(&da850_evm_tl_leds_device);- a" |- [8 }& S

! W4 o4 Z( M  I1 ]; k        if (ret); i& `( V' l4 P2 K. z2 w: [
$ l: F9 D2 s: b: T; q
                pr_warning("Could not register som GPIO expander LEDS");5 k  }* c+ X* [2 ~9 v
5 ~7 [; D% s6 L/ J
        else# T: U0 p$ q' `

; j8 L4 E' a$ J0 W                printk(KERN_INFO "LED register sucessful!\n");5 d' D& _! Z& b# d. Q" k

! _5 [: ]3 Z( r" _2 j$ c: s. C1 [2 q' `6 e

- ?* x3 S! e+ W. X! m; v. K        return ret;) m: z/ S, k. m* {4 r5 {
. M8 d0 j* F# }) p2 Z. C
}  @! k9 r" L- `, d  z
8 r1 I& ]6 R: Y, }
  E6 b4 W( _7 U" U5 O! ?, z& s
1 p% J  i! k# V- L
static void __exit led_platform_exit(void)6 z1 m$ t; {; [! {

# l3 ]( P9 Q$ w' d& m- |/ o{8 A( m( H3 V6 O( l. D$ U
' _8 O2 G* w# \' n+ y3 X/ z
        platform_device_unregister(&da850_evm_tl_leds_device);
- H7 R+ E* r* [+ y2 E- O: f+ C
4 {+ |0 `. x1 A/ I( Z
6 C5 @" K8 h" S0 D: A; ^8 R* P, C! F7 m3 P8 K$ G: t
        printk(KERN_INFO "LED unregister!\n");0 @+ {( S+ X4 S/ l5 u- @5 g7 g

3 K  c$ F! ?4 K. n}0 e+ j. `8 v! w0 Z* m1 k

4 S. Q6 C, ~! I. q) q4 }4 N$ V7 y$ B3 @6 Q
: J- X0 @8 U, \% i( G
module_init(led_platform_init);. R/ U4 r1 }) B  Q1 E- i
8 E8 N+ [6 h  u! g
module_exit(led_platform_exit);; u" C& g% B8 x  L7 y1 o& ~, ?3 ^

% a4 h; S# p  g3 ?0 J0 t% O6 _7 S7 E+ V+ @4 b4 f" I# u. X
. ]. i6 x5 d) I/ Z" f# ?, D9 w: Z  ?" q( n
MODULE_DESCRIPTION("Led platform driver");! o' s: l; U4 g( F: P

+ Q5 c- u. l" ?% ZMODULE_AUTHOR("Tronlong");. Z: _- @- z) o4 Q. }! `; q, Z, y
$ R/ l9 s! a( O) K+ I9 [4 r
MODULE_LICENSE("GPL");
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
地板
发表于 2018-12-17 10:32:23 | 只看该作者
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。$ e, }' G3 c* T4 A" P

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

93

帖子

530

积分

高级会员

Rank: 4

积分
530
5#
 楼主| 发表于 2018-12-17 11:32:31 | 只看该作者
广州创龙莫工 发表于 2018-12-17 10:32% U5 [3 y2 u1 r& z
您好,程序里面已经在系统配置寄存器那里配置好了管脚配置,已经对应上相关寄存器的了。
. U4 f, C: ~2 G& Z$ n: f  d0 ` ...
, Z- s9 \8 y4 U0 }  G1 v$ y
好的  谢谢回答   我自己再好好研究研究吧
回复 支持 反对

使用道具 举报

3

主题

524

帖子

2085

积分

创龙

Rank: 8Rank: 8

积分
2085
6#
发表于 2018-12-17 17:24:29 | 只看该作者
嗯嗯。可以看一下我们的视频教程。
0 }( Y" M, _) _4 N* `' u$ }0 Ehttp://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-4-30 04:48 , Processed in 0.045111 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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