搜索
bottom↓
回复: 26

如何移植LPC1788工程到LPC4088,急!!!

[复制链接]

出0入0汤圆

发表于 2013-7-15 15:42:59 | 显示全部楼层 |阅读模式
本帖最后由 szszjdb 于 2013-7-16 08:59 编辑

朋友们好!
我现在想移植LPC1788工程到LPC4088,原LPC1788工程可正常编译下载仿真,板子为4088。我将KEIL里的器件改为4088, 然后将system_LPC177x_8x.c,startup_LPC177x_8x.s 更换为system_LPC407x_8x_177x_8x.c;startup_LPC407x_8x_177x_8x.s,编译正常通过,下载到开发板时可以正常下载,但是在进入仿真时总是提示不能载入.AXF文件,debugger退出,而此时,只需将器件改回1788,不用重新编译下载,直接点仿真键可正常仿真。已经试过KEIL4.23/4.60,结果相同。可否告知是什么原因?如何改进?

补充一下,因1788例程较多,而4088为M4核,算法较快故想移植LPC1788工程到LPC4088,没想到情况还挺复杂。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2013-7-15 15:52:56 | 显示全部楼层
是不是没有生成axf文件,工程-输出 里面看下设置吧。
LPC4088现在能批量拿货了?

出0入0汤圆

发表于 2013-7-15 15:53:02 | 显示全部楼层
从KEIL的4088例程下拷一个AXF文件,放到你移植的目录下试试。

出0入0汤圆

 楼主| 发表于 2013-7-15 16:05:10 | 显示全部楼层
本帖最后由 szszjdb 于 2013-7-15 16:07 编辑

多谢以上朋友回复!
小批量是没问题了。
选4088时,AXF肯定生成了,我查过。如果直接使用4088的工程是没有问题的,可正常仿真。我甚至详细比较过4088与1788的工程文件,除system_LPC177x_8x.c,startup_LPC177x_8x.s 更换为system_LPC407x_8x_177x_8x.c;startup_LPC407x_8x_177x_8x.s,几个头文件换掉,其他没看出什么区别,所以特别郁闷! 继续求解!

多谢!

出0入0汤圆

 楼主| 发表于 2013-7-16 08:56:40 | 显示全部楼层
顶一顶,继续求教!多谢!

出0入0汤圆

发表于 2013-7-16 09:09:54 | 显示全部楼层
别纠结了,找个4088例程,把源代码移植过去。

出0入0汤圆

 楼主| 发表于 2013-7-16 09:30:51 | 显示全部楼层
本帖最后由 szszjdb 于 2013-7-16 09:32 编辑

多谢楼上大侠!
这也是最后的解决办法,但对较大的工程比较耗时易错。
有没有大侠知道根本原因在哪呢?有4088板子的朋友能不能也尝试一下,移植1788的工程看有无问题?

出0入0汤圆

发表于 2013-7-16 09:41:15 | 显示全部楼层
楼主啊,头文件换一下,库函数换一下(如果你是寄存器操作直接无视这个),然后其他东西依旧,在C/C++标签栏里面定义CORE_M4宏,然后就直接完事了啊

出0入0汤圆

 楼主| 发表于 2013-7-16 13:51:12 | 显示全部楼层
本帖最后由 szszjdb 于 2013-7-17 00:17 编辑

楼上兄弟,我正是这么做的,可是改后无法加载AXF文件。我将工程贴出来,其中-1788结尾的是原1788工程,功能正常,可加载到4088的PCB上运行,而-4088的为移植后的,无法加载。
还请有硬件环境的朋友帮忙试试!多谢了!
对了,这个工程也是AMO这里一个朋友放出来的,先谢谢他!

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-7-16 17:39:00 | 显示全部楼层
本帖最后由 szszjdb 于 2013-7-17 00:11 编辑

接着将4088的例子改了,加上UCOS, 这回可以加载AXF文件了,但是UCOS跑起来了后,任务没有运行,停在PENDSV中断了,莫名其妙。原1788的可以正常运行。附件是4088工程,建了两个LED闪烁任务,有没有朋友可以帮忙看看? 多谢!

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-7-17 09:58:49 | 显示全部楼层
自己再顶顶!

出0入0汤圆

发表于 2013-7-17 10:01:57 | 显示全部楼层
你用的什么硬件?我这边有个EA的4088

出0入0汤圆

 楼主| 发表于 2013-7-17 10:12:16 | 显示全部楼层
论坛上买的,原来是1788的我换成4088.硬件肯定是好的,其他4088例程都能跑,现在问题是用4088能跑的GPIO来加上UCOS,运行时任务没有运行,停在PENDSV中断了,由于对UCOS运行机制和调试方法不熟,不知问题出在何处,您能帮我看看附件的程序吗?

出0入0汤圆

发表于 2013-7-17 11:15:38 | 显示全部楼层
szszjdb 发表于 2013-7-17 10:12
论坛上买的,原来是1788的我换成4088.硬件肯定是好的,其他4088例程都能跑,现在问题是用4088能跑的GPIO来 ...

楼主啊,问题不在于这个芯片啊,在于ucOSII系统啊。你现在是换成了M4的内核,并且打开了FPU功能,对于FPU来说,你打开的话压栈出栈的寄存器是要多18个的,这个是没问题的,只要你的任务栈空间开大一些。关键的原因还是在OS_CPU_PendSVHandler这个函数里面,在任务却换时是要去处理现场的恢复的,但是ucosii里面的OS_CPU_PendSVHandler显然是没有去处理FPU的这几个寄存器,这样问题就出来了。楼主可以参照一下RT-thread的写法啊,RT-Thread是支持FPU的。并且我们也有LPC4088的分支代码哦,很多驱动都写了的。具体请看这里:http://www.rt-thread.org/phpBB3/viewtopic.php?f=31&t=2782

出0入0汤圆

 楼主| 发表于 2013-7-17 15:22:46 | 显示全部楼层
多谢小龙解答!
我试着去掉CORE-CM4开关,关闭FPU, 并选择NO FPU, 重新编译GPIO_LedBlinky-LPC4088工程, UCOS任然停止在PENDSV中断,按说现在的4088就相当于1788,怎么还会有问题,或者还要什么改进?
您给的RTT链接我下了,好像还不是一个 工程,还需要工具链配合才能生成MDK工程吗?对这套流程还不清楚。或者有没有已经生成的基础工程参考一下呢?

多谢!

出0入0汤圆

 楼主| 发表于 2013-7-17 15:23:32 | 显示全部楼层
多谢小龙解答!
我试着去掉CORE-CM4开关,关闭FPU, 并选择NO FPU, 重新编译GPIO_LedBlinky-LPC4088工程, UCOS任然停止在PENDSV中断,按说现在的4088就相当于1788,怎么还会有问题,或者还要什么改进?
您给的RTT链接我下了,如附件,好像还不是一个工程,还需要工具链配合才能生成MDK工程吗?对这套流程还不清楚。或者有没有已经生成的基础工程参考一下呢?

多谢!

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-7-17 15:34:16 | 显示全部楼层
千千万万别用小批量的新芯片,我当年就被STM32F4坑的北都找不到。。。。。。。。。。。。。

当年急着上马F4,就是拿的楼主这种刚出的小批量,结果发现所有芯片会随机的死命发热,只要发
热了拆掉所有外设并且把芯片RESET拉低都没用,搞了几个星期也没搞明白,最后从总代那里搞了
一批新生产日期的芯片,换上测试了很长时间,所有异常全消失了。。。。汗

出0入0汤圆

 楼主| 发表于 2013-7-17 15:45:17 | 显示全部楼层
多谢提醒!现在还在学习阶段,还不怕芯片出问题。目前我这片还好,继续观察吧。

出0入0汤圆

发表于 2013-7-17 19:58:40 | 显示全部楼层
szszjdb 发表于 2013-7-17 15:23
多谢小龙解答!
我试着去掉CORE-CM4开关,关闭FPU, 并选择NO FPU, 重新编译GPIO_LedBlinky-LPC4088工程, U ...

是的,需要配置工具去生成工程,我们一般代码不回去直接上传工程的,那样文件太多太大,我们都是把一些固定的,如RT-Thread的源代码等分离然后上传,然后下载后在本地用脚本去集成。这种方法比直接上传工程要省很多。如果你不想去集成的可以联系我给你一个生成好的工程。还有一个问题啊,如果你要关闭FPU的话,那LPC4088就是个1788使了,也就是说一起你的工程直接啥都不改,直接下载就可以直接跑了,没有任何的问题,仿真什么的一样没有问题。我这边测试是这样的。两个的区别主要是一个是M3一个是M4,还有LPC4088多了个SPIFI,这个你估计不去用他的。

出0入0汤圆

发表于 2013-7-17 20:41:03 | 显示全部楼层
还有啊,楼主你说的你关闭了FPU以后GPIO_LedBlinky-LPC4088还是没法运行,这个是不对的啊,你这个GPIO_LedBlinky-LPC4088的启动汇编根本就没有加入OS_CPU_SysTickHandler和OS_CPU_PendSVHandler两个函数,又怎么会正常运行呢?

出0入0汤圆

发表于 2013-7-17 20:54:58 | 显示全部楼层
4088现在什么价

出0入0汤圆

 楼主| 发表于 2013-7-17 22:20:33 | 显示全部楼层
本帖最后由 szszjdb 于 2013-7-17 22:36 编辑

非常感谢小龙,果然一眼看出问题所在,正是启动文件中没有将默认的中断函数换成OS的导致任务无法调度,加上后问题解决。而且我试了,即便开启FPU也可以正常调度,估计是点灯任务没用到FPU哪几个寄存器,看不出影响。小龙能否妙手回春把这个问题一起解决?(我功力不够呀)
先贴上能够跑的LPC4088+UCOS工程。
如方便的话,能否将RTT+4088的工程发给我 13603052469@139.com  
RTT大名鼎鼎,很让人佩服的OS, 就是实例不多,RTGUI更新了后,不知道哪里能找到说明文档或者各种控件的实例?
再次感谢!

出0入0汤圆

 楼主| 发表于 2013-7-17 22:30:15 | 显示全部楼层
附件没贴上?

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-10-9 12:33:45 | 显示全部楼层
多谢楼主,我用楼主的代码跑了两个任务,都有浮点运算,也没出现问题呀!看楼主的任务切换部分也没有对FPU的寄存器进行压栈和出栈操作。奇怪!

出0入0汤圆

 楼主| 发表于 2013-10-10 23:31:02 | 显示全部楼层
我也觉得奇怪,没能力深入下去了。

出0入0汤圆

发表于 2013-10-17 16:58:15 | 显示全部楼层
顶一下,希望楼主早日搞定

出0入0汤圆

发表于 2014-3-25 16:51:16 | 显示全部楼层
学习了,还没有头绪
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 19:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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