[MSP430] 关于一款芯片的程序移植

[复制链接]
3330|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、运行程序,检查运行错误的地方,重复循环修改。

评论

cool  发表于 2017-11-2 10:32
 楼主| cheng166 发表于 2017-11-1 18:44 | 显示全部楼层
dalarang 发表于 2017-11-1 17:13
移植的话,C语言执行层面的代码一般不用怎么改动,主要是对寄存器的操作重新改一下。
1、新建一个430的工程 ...

是这样的,源代码采用的是库开发模式,分了很多层,头文件和驱动函数非常多,我现在要移植到430上面还需要沿用这种库函数的形式吗?
dalarang 发表于 2017-11-1 20:36 | 显示全部楼层
cheng166 发表于 2017-11-1 18:44
是这样的,源代码采用的是库开发模式,分了很多层,头文件和驱动函数非常多,我现在要移植到430上面还需 ...

肯定不行啊,只拷贝中间层过来,底层自己重写。
Prry 发表于 2017-11-2 08:54 | 显示全部楼层
除了底层相关的代码,上层的直接移过来。所以说代码分层很重要。spi、i2c、uart等,不外就这些,底层和应用分离,移植到任何平台都是很容易的事情。但看过一些工程师写的代码,真的会吐血,能愿重新写过,也不想移。
Prry 发表于 2017-11-2 08:57 | 显示全部楼层
比如一个i2c的EEPROM移植过来:i2c总线(底层)->EEPROM驱动->应用;三者中,如果做好分层,只需重新实现i2c总线即可,上面驱动、应用完全不用改。
dog_xin 发表于 2017-11-2 09:23 | 显示全部楼层
有的程序移植非常麻烦,因为芯片的资源不同,好多功能用硬件实现的,譬如SPI,I2C等,而换了芯片这个硬件不一样了,得重新改,工作量往往很大,所以我们一般不改芯片,只有做新项目时才考虑用别的芯片。
 楼主| cheng166 发表于 2017-11-2 15:09 | 显示全部楼层
dog_xin 发表于 2017-11-2 09:23
有的程序移植非常麻烦,因为芯片的资源不同,好多功能用硬件实现的,譬如SPI,I2C等,而换了芯片这个硬件不 ...

是的,我要改的这个芯片的代码量非常大,而且又是从ARM移植到430,驱动部分的修改做的欲哭无泪。
zwsam 发表于 2024-3-8 09:09 | 显示全部楼层
有意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部