双核工作下,UPP不工作 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

双核工作下,UPP不工作

[复制链接]

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
跳转到指定楼层
楼主
发表于 2015-1-29 09:38:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
创龙工程师:; P" F# G9 P9 f4 J. Q# V# L
     你好,我是保定炜达电力的
5 j1 ]6 w0 T( q% d& u     咨询问一个问题,我OMAPL138的DSP核部分已经用DSP仿真器调试通过了,使用SYSBIOS系统,UPP采集FPGA的数据,只使用UPP的A口,在初始化UPP时,修改了贵司的初始化文件(XDATA数据线因与LCD公用,所以修改)
8 B" b2 e' q$ P/ D' s& _1 u6 W1 \7 H, v* b
void UPPPinMuxSetup(void)9 o- \8 V0 K, O8 o" e4 e+ E2 x
{* c7 t1 K: @5 Q- U- \
unsigned int savePinmux13 = 0;: n4 `: a3 Z! {/ L; W* D
unsigned int savePinmux14 = 0;! r$ h8 o5 t' U
unsigned int savePinmux15 = 0;
/ ~4 N2 X9 k; I% e( e. ^  X unsigned int savePinmux16 = 0;  q" ~# n0 @1 ^
unsigned int savePinmux17 = 0;/ P1 L$ Y" H' }1 Q5 R6 B' D0 G4 P
unsigned int savePinmux18 = 0;6 N) i2 M$ }6 w) v
/* all pins (channel A, channel B, DATA, and XDATA)*/
2 Q% V. q/ Z& Q  o6 u' X. D; o  Y' z savePinmux13 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) & 0x0000FFFF);    //不要的输入F- r; }8 v& j0 t
savePinmux14 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(14)) & 0x000000FF);% ~( @8 x- Q3 K, N
savePinmux15 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(15)) & 0x00000000);
: B# B0 s6 p8 g  \ savePinmux16 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) & 0xFFFFFF00);+ Q# G4 `- i/ S7 N
//savePinmux16 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) & 0x00000000);
) e) ~, N, O4 M //savePinmux17 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(17)) & 0x00000000);
$ V. h! n; G& H, p% A$ l' \ //savePinmux18 = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(18)) & 0xFF000000);
, V7 m- V( k" k7 J4 Z' N HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(13)) = (0x44440000 | savePinmux13);0 H' x% G/ m* a: X
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(14)) = (0x44444400 | savePinmux14);- r6 \9 _/ n/ U& @4 W' B3 |
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(15)) = (0x44444444 | savePinmux15);7 H" p& L) s# o* H* k
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) = (0x00000044 | savePinmux16);
" g) c& A5 [# Q1 U# m; q //HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(16)) = (0x44444444 | savePinmux16);6 _; [" W' E* o* r. u" H
//HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(17)) = (0x44444444 | savePinmux17);
; }: p5 x9 j6 Z& B8 p# P //HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(18)) = (0x00444444 | savePinmux18);
! j: x! M) c2 j) G7 p}
" x; ~; Z, C3 D) J6 A( M) o7 `1 W3 M8 @) e* e* h% {/ v* \4 j; J
     现在我的问题是,我DSP核心独立仿真调试没有问题了,但是现在OMAPL138 linux系统启动后,再加载DSP核应用程序,居然UPP中断不工作了,不知道是为什么,是不是LINUX系统与DSP有冲突,麻烦指导看一下。
* Z; H* X1 w% R- K2 U

) i# l  R5 @) n
  s& ?/ I. _  J7 R& V- ]6 _% A3 }& E/ ^$ G* n3 x: t' |& U4 X* F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
11#
 楼主| 发表于 2015-8-11 10:13:52 | 只看该作者
本帖最后由 tulipyyf 于 2015-8-11 10:15 编辑
+ ^: O0 y8 d$ }2 f" C" m1 ~  i  j2 T; T
内核文件不用后来证明不用旧的~~~
9 S! ~% O# B: C) E9 i7 F0 V' ]8 }+ ]5 Q实际上我就是在创龙的样板上进行了修改
) O5 r: z: k4 l: D4 O' }" h2 T主要改动 1 移植到SYSBIOS中运行
3 ^- l* Z- l+ B, n4 a2 Q- Y7 Y9 l               2 因需要时刻储存,所以FPGA发送一次下降沿脉冲,DSP核心中断收到后,执行一次完整的UPP重载,只是重载时,需要把DDR存储接收地址更新,然后开始接收UPP数据
$ Z; r$ \5 _; a1 m. N' \7 C               3 重载之前,需要 CacheWBInvAll();                        //更新cache5 c9 }+ u4 @, s' u
7 q+ q7 N# `  X% ?( s3 i6 z/ B: j
希望能帮助你  
回复 支持 反对

使用道具 举报

6

主题

18

帖子

129

积分

注册会员

Rank: 2

积分
129
10#
发表于 2015-8-9 16:54:19 | 只看该作者
tulipyyf 发表于 2015-8-7 16:38+ t, d9 ?) T5 }5 ?& h
DDR存储使用的是缓存~~~
# E; i3 g0 Q8 L; M- w; c% u  A
哦,但我还是想知道你是具体怎么解决的。对于内核文件要用旧的一直不理解。
回复 支持 反对

使用道具 举报

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) F/ [( g3 B' ?  A
当时应该最后是因为内存使用一致性问题导致的~~~你可以查看一下内存使用一致性文档~~~. k. B. G3 l2 n# Z7 s+ E# Z2 u& P
“TI C64x+ DSP CACH ...

! Z5 u# j" B7 V我看了下,好像没有使用缓存,应该跟一致性 没有关系吧。
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
6#
 楼主| 发表于 2015-8-4 08:27:19 | 只看该作者
当时应该最后是因为内存使用一致性问题导致的~~~你可以查看一下内存使用一致性文档~~~
5 Q2 C9 g. [8 E! V% P. ^“TI C64x+ DSP CACHE一致性分析与维护”那篇文献写的很清楚
回复 支持 反对

使用道具 举报

6

主题

18

帖子

129

积分

注册会员

Rank: 2

积分
129
5#
发表于 2015-7-31 12:13:47 | 只看该作者
tulipyyf 发表于 2015-1-29 17:14. m" C( X8 R, j" c
问题解决了,原来内核文件要用旧的
' V& ]4 Y+ Z5 K# t: }" \5 Z' l
不好意思,打扰了,我现在所遇到的问题和你一模一样,看了你的回复说;内核文件要用旧的,不知道什么意思。麻烦告知下,谢谢
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
地板
 楼主| 发表于 2015-1-29 17:14:14 | 只看该作者
问题解决了,原来内核文件要用旧的# ]3 m9 d" u7 g
回复 支持 反对

使用道具 举报

19

主题

74

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
板凳
 楼主| 发表于 2015-1-29 09:58:45 | 只看该作者
再次补充说明 LINUX启动时已经如下设置,DDR不应该有冲突8 A1 _- c, [( T
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 mem=32M@0xc0000000 mem=64M@0xc4000000; y4 R! o- Q& h9 P5 _# m+ R  f; k' u
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-16 10:54 , Processed in 0.049717 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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