双核工作下,UPP不工作 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9711|回复: 10
打印 上一主题 下一主题

双核工作下,UPP不工作

[复制链接]

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
跳转到指定楼层
楼主
发表于 2015-1-29 09:38:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
创龙工程师:- Q: @9 J! p" j9 f9 Q! W% X; m
     你好,我是保定炜达电力的
2 B( Q& U& h7 v9 d( Q7 n     咨询问一个问题,我OMAPL138的DSP核部分已经用DSP仿真器调试通过了,使用SYSBIOS系统,UPP采集FPGA的数据,只使用UPP的A口,在初始化UPP时,修改了贵司的初始化文件(XDATA数据线因与LCD公用,所以修改)' A/ s$ b4 y- P# j0 a
  W& K0 T5 ]. E2 M( _& T" h6 R
void UPPPinMuxSetup(void)
+ M9 o  v6 ]& ], d0 O0 p{
1 y& O# i. t- U* n( _( E, N unsigned int savePinmux13 = 0;
+ d3 [1 X" t! W! u5 s1 X7 ^/ r8 W! G unsigned int savePinmux14 = 0;
5 G8 P# J, E3 g7 X unsigned int savePinmux15 = 0;
' A! k4 [# P/ O unsigned int savePinmux16 = 0;
" L$ q$ J# C/ }2 _& y- F* q4 [ unsigned int savePinmux17 = 0;
  r4 j  q: u8 Q4 @# o unsigned int savePinmux18 = 0;
- g" r% }8 ?6 G9 k; { /* all pins (channel A, channel B, DATA, and XDATA)*/
7 w4 S2 B6 m& a4 y& } savePinmux13 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) & 0x0000FFFF);    //不要的输入F
$ |* n7 s, }9 p9 B5 ~) h1 t* X savePinmux14 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(14)) & 0x000000FF);
" o  z/ Z& h+ ?8 U1 B2 T' R  T savePinmux15 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(15)) & 0x00000000);  y3 G. G2 R& Z
savePinmux16 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) & 0xFFFFFF00);
! D' [5 f3 ?, [6 V: ^ //savePinmux16 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) & 0x00000000);2 w* n" Y- {' i& T$ i
//savePinmux17 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(17)) & 0x00000000);; z. Q+ _' c+ @$ C
//savePinmux18 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(18)) & 0xFF000000);" T% C! L5 K  k, c1 g7 R
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x44440000 | savePinmux13);8 S# ^4 I  t) E8 V) w: c3 t8 ]  H
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(14)) = (0x44444400 | savePinmux14);0 e! G# I% M* r/ a) s8 H
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(15)) = (0x44444444 | savePinmux15);
; P: z1 z, z9 Y$ U3 q6 T3 v HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) = (0x00000044 | savePinmux16);
9 c- B8 @5 E3 E' l- |( Z+ p5 j //HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) = (0x44444444 | savePinmux16);
. x, K  X% o& j; [% P //HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(17)) = (0x44444444 | savePinmux17);0 z$ I9 Y8 g& x. n# n& ^
//HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(18)) = (0x00444444 | savePinmux18);
& h' ^& [7 S$ r: B- \5 ^( F9 ~+ f}: a* ?% O* p; i# q
6 X# q2 v# v( `% I
     现在我的问题是,我DSP核心独立仿真调试没有问题了,但是现在OMAPL138 linux系统启动后,再加载DSP核应用程序,居然UPP中断不工作了,不知道是为什么,是不是LINUX系统与DSP有冲突,麻烦指导看一下。 * T6 V. W% S7 C% n  m

- I- Z, G' w% ^# n2 V) W) y: f3 g+ Q2 X1 n* X

% W1 E/ _8 v4 ?$ p/ v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
11#
 楼主| 发表于 2015-8-11 10:13:52 | 只看该作者
本帖最后由 tulipyyf 于 2015-8-11 10:15 编辑 # z4 N' \6 e7 G: x8 E4 ~+ \

6 y) V* N& t7 i7 b) o; m内核文件不用后来证明不用旧的~~~
7 _! q; _% U! A3 o实际上我就是在创龙的样板上进行了修改
  u* |/ d, F' Y$ _主要改动 1 移植到SYSBIOS中运行
3 Q1 V* W4 f. j- N" r+ C               2 因需要时刻储存,所以FPGA发送一次下降沿脉冲,DSP核心中断收到后,执行一次完整的UPP重载,只是重载时,需要把DDR存储接收地址更新,然后开始接收UPP数据
& m/ |' `1 C! v1 H# f               3 重载之前,需要 CacheWBInvAll();                        //更新cache
4 u! z+ H! c, U: c  C+ J& z. }- Z3 @/ E7 ?2 N# [& C9 x
希望能帮助你  
回复 支持 反对

使用道具 举报

6

主题

18

帖子

129

积分

注册会员

Rank: 2

积分
129
10#
发表于 2015-8-9 16:54:19 | 只看该作者
tulipyyf 发表于 2015-8-7 16:38  a6 M, H! A1 F! o
DDR存储使用的是缓存~~~
' |: W$ k6 x% g) d! w" N' b9 x
哦,但我还是想知道你是具体怎么解决的。对于内核文件要用旧的一直不理解。
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
9#
 楼主| 发表于 2015-8-7 16:38:55 | 只看该作者
DDR存储使用的是缓存~~~
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
8#
 楼主| 发表于 2015-8-7 16:38:33 | 只看该作者
我当时是upp定时从FPGA中读取数据,upp存储的数据直接放到DDR上,所以DDR上是存在一致性问题的~~
回复 支持 反对

使用道具 举报

6

主题

18

帖子

129

积分

注册会员

Rank: 2

积分
129
7#
发表于 2015-8-7 14:42:55 | 只看该作者
tulipyyf 发表于 2015-8-4 08:27% b' A4 |5 b6 r: ~" ^. \0 ~
当时应该最后是因为内存使用一致性问题导致的~~~你可以查看一下内存使用一致性文档~~~/ R! l* N/ T; C
“TI C64x+ DSP CACH ...
7 R5 e- m0 i5 F- i. y2 e
我看了下,好像没有使用缓存,应该跟一致性 没有关系吧。
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
6#
 楼主| 发表于 2015-8-4 08:27:19 | 只看该作者
当时应该最后是因为内存使用一致性问题导致的~~~你可以查看一下内存使用一致性文档~~~/ U8 K0 T8 y9 c; L1 }4 b2 C. n3 ]: ?+ b
“TI C64x+ DSP CACHE一致性分析与维护”那篇文献写的很清楚
回复 支持 反对

使用道具 举报

6

主题

18

帖子

129

积分

注册会员

Rank: 2

积分
129
5#
发表于 2015-7-31 12:13:47 | 只看该作者
tulipyyf 发表于 2015-1-29 17:14
; T( o+ U& m6 y, _2 S, j问题解决了,原来内核文件要用旧的
: y0 w6 G3 M& }' M: E
不好意思,打扰了,我现在所遇到的问题和你一模一样,看了你的回复说;内核文件要用旧的,不知道什么意思。麻烦告知下,谢谢
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
地板
 楼主| 发表于 2015-1-29 17:14:14 | 只看该作者
问题解决了,原来内核文件要用旧的
: z5 S6 D6 j/ `8 k/ r* x. K+ S
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
板凳
 楼主| 发表于 2015-1-29 09:58:45 | 只看该作者
再次补充说明 LINUX启动时已经如下设置,DDR不应该有冲突: ~7 d7 a( r% S' i' E- M2 c0 j
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 mem=32M@0xc0000000 mem=64M@0xc4000000
: u  l7 s9 `* t+ w) A& K% c# t* t
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-6-15 18:35 , Processed in 0.041038 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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