打印
[MSP430]

关于一款芯片的程序移植

[复制链接]
2801|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cheng166|  楼主 | 2017-11-1 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT,楼主目前实验室在做一个项目,要求是针对一款恩智浦的ARM-Cortex M0内核的MCU——LPC11U24的一个例程进行程序移植,移植目标到MSP430FR5959上面,目前已经拿到了这个LPC11U24的全部源码,但对于如何移植并没有任何的概念,自己捣鼓了十来天,一直没有进展,在这里求教一下论坛里的各位大佬,不知可否提供一些指导,方向上的思路或者具体的操作步骤都可以,楼主在此先表示感谢了!

相关帖子

沙发
ningling_21| | 2017-11-1 16:53 | 只看该作者
本帖最后由 ningling_21 于 2017-11-1 16:55 编辑

首先要搞清楚原来的程序实现的具体功能
根据这些功能,改写原来的程序,使之能在目标芯片中运行并实现原来的功能

使用特权

评论回复
板凳
dalarang| | 2017-11-1 17:13 | 只看该作者
移植的话,C语言执行层面的代码一般不用怎么改动,主要是对寄存器的操作重新改一下。
1、新建一个430的工程,然后把原工程内的C和H文件按需要复制过来整理好。
2、修改初始化方面的代码,一般运行时都会先初始化各寄存器,这方面肯定是要改的。
3、修改中断方面相关的代码,这里也是不一样的。
4、执行编译,让编译器列出错误。
5、修改报错的语句,返回4继续。
6、重复执行4/5直到没有编译错误。
7、运行程序,检查运行错误的地方,重复循环修改。

使用特权

评论回复
评论
宇容创行 2017-11-2 10:32 回复TA
cool 
地板
cheng166|  楼主 | 2017-11-1 18:44 | 只看该作者
dalarang 发表于 2017-11-1 17:13
移植的话,C语言执行层面的代码一般不用怎么改动,主要是对寄存器的操作重新改一下。
1、新建一个430的工程 ...

是这样的,源代码采用的是库开发模式,分了很多层,头文件和驱动函数非常多,我现在要移植到430上面还需要沿用这种库函数的形式吗?

使用特权

评论回复
5
dalarang| | 2017-11-1 20:36 | 只看该作者
cheng166 发表于 2017-11-1 18:44
是这样的,源代码采用的是库开发模式,分了很多层,头文件和驱动函数非常多,我现在要移植到430上面还需 ...

肯定不行啊,只拷贝中间层过来,底层自己重写。

使用特权

评论回复
6
Prry| | 2017-11-2 08:54 | 只看该作者
除了底层相关的代码,上层的直接移过来。所以说代码分层很重要。spi、i2c、uart等,不外就这些,底层和应用分离,移植到任何平台都是很容易的事情。但看过一些工程师写的代码,真的会吐血,能愿重新写过,也不想移。

使用特权

评论回复
7
Prry| | 2017-11-2 08:57 | 只看该作者
比如一个i2c的EEPROM移植过来:i2c总线(底层)->EEPROM驱动->应用;三者中,如果做好分层,只需重新实现i2c总线即可,上面驱动、应用完全不用改。

使用特权

评论回复
8
dog_xin| | 2017-11-2 09:23 | 只看该作者
有的程序移植非常麻烦,因为芯片的资源不同,好多功能用硬件实现的,譬如SPI,I2C等,而换了芯片这个硬件不一样了,得重新改,工作量往往很大,所以我们一般不改芯片,只有做新项目时才考虑用别的芯片。

使用特权

评论回复
9
cheng166|  楼主 | 2017-11-2 15:09 | 只看该作者
dog_xin 发表于 2017-11-2 09:23
有的程序移植非常麻烦,因为芯片的资源不同,好多功能用硬件实现的,譬如SPI,I2C等,而换了芯片这个硬件不 ...

是的,我要改的这个芯片的代码量非常大,而且又是从ARM移植到430,驱动部分的修改做的欲哭无泪。

使用特权

评论回复
10
zwsam| | 2024-3-8 09:09 | 只看该作者
有意思

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝