IAP_02_IAP功能成功移植到AI8H1K17
今天我试了下把AI8H8K64U的ISP程序移植到AI8H1K17。一 下载官网资料
我下载的是UART升级的资料
二 移植代码
2.1 移植代码前看了下说明书
主要是程序基本框架和用户ISP代码部分。
2.2 移植代码
将keil工程中的源代码拷贝到我的STC8H1K17工程中
花了一段时间解决移植过程中带来的编译报错,直至编译通过。
三 ISP烧录下载固件
下面的步骤当中,有一些和教程不一样。
频率都是24M,但Flash大小不一样:
STC8H8K64U的Flash是64K,设置EEPROM大小为64-4=60K
STC8H1K17的Flash是17K,要设置EEPROM大小为17-4=13K
设置好后下载烧录
烧录完重新掉电上电一次
四 设置APP代码
4.1 写一个串口打印工程作为APP
我随便写了个串口打印的工程,在主循环不断用UART1发送字符串:
4.2 Keil设置EEPROM的大小
STC8H8K64U的用户程序区是60K,设置Size为0xEFFD,为59K处
照猫画虎
STC8H1K17的用户程序区是13K,Size要设置为12K处,即0x3000
4.3 设置中断向量入口地址映射
这部分的设置和教程保持一致就好。
4.4 用官方APP更新固件
打开APP hex文件,然后下载就好
4.5 测试
打开串口工具,可以看到,如愿以偿打印了APP工程中要显示的字符串
既然测试IAP功能没有问题,接下来就要把IAP工程改为自己需求的样子。
感谢您分享关于将IAP功能成功移植到STC8H1K17的详细过程。以下是对您帖子的专业回复:
一、下载官网资料
您选择了UART升级的资料进行下载,这是一个明智的选择,因为UART通信在嵌入式系统中应用广泛,且易于调试和实现。通过官方资料,您可以确保获取到最新的技术文档和示例代码,为后续的移植工作打下坚实的基础。
二、移植代码
2.1 移植代码前阅读说明书
在移植代码之前,仔细阅读说明书是非常必要的。说明书不仅提供了程序的基本框架,还详细介绍了用户ISP代码部分的具体实现。通过理解这些内容,您可以更好地把握移植过程中的关键点,避免不必要的错误。
2.2 移植代码
将Keil工程中的源代码拷贝到STC8H1K17工程中,并解决编译报错,直至编译通过,这是移植过程中的关键步骤。编译报错通常是由于不同芯片之间的硬件差异或编译器设置不当引起的。通过逐一解决这些报错,您可以确保代码在新的硬件平台上正常运行。
三、ISP烧录下载固件
在烧录固件时,您注意到STC8H8K64U和STC8H1K17的Flash大小不同,并相应地调整了EEPROM的大小。这一细节处理非常重要,因为Flash和EEPROM的大小直接影响到程序的存储和执行。通过正确设置这些参数,您可以确保固件能够正确烧录并运行。
四、设置APP代码
4.1 编写串口打印工程作为APP
编写一个简单的串口打印工程作为APP,是一个很好的测试方法。通过不断发送字符串,您可以验证UART通信是否正常工作,并确保APP代码能够正确执行。
4.2 Keil设置EEPROM的大小
在Keil中设置EEPROM的大小时,您根据STC8H1K17的Flash大小,将Size设置为12K处(即0x3000)。这一设置确保了用户程序区的大小与硬件资源相匹配,避免了程序溢出或资源浪费。
4.3 设置中断向量入口地址映射
中断向量入口地址映射的设置与教程保持一致,这是确保中断处理程序能够正确执行的关键。通过正确设置中断向量表,您可以确保在发生中断时,程序能够跳转到正确的处理函数。
4.4 用官方APP更新固件
使用官方APP更新固件是一个标准流程。通过打开APP hex文件并下载,您可以确保固件能够正确烧录到目标芯片中。
4.5 测试
最后,通过打开串口工具进行测试,您可以验证整个系统的功能是否正常。串口工具不仅可以显示发送的字符串,还可以帮助您调试和排查潜在的问题。
总结
您成功地将IAP功能移植到STC8H1K17,并详细记录了整个过程。通过仔细阅读说明书、解决编译报错、正确设置硬件参数和测试验证,您确保了移植工作的顺利进行。这一过程不仅展示了您的技术能力,也为其他开发者提供了宝贵的参考经验。希望您在未来的项目中继续取得更多的成功。
[本文内容由国芯人工智能辅助生成,仅供参考] 还有一点需要注意的,8H1K17的xdata空间只有1K,所以升级标志存放位置也要修改到1K以内:
乘风飞扬 发表于 2025-4-11 18:19
还有一点需要注意的,8H1K17的xdata空间只有1K,所以升级标志存放位置也要修改到1K以内:
是的
页:
[1]