完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
项目布局细节:
在我的项目中,我使用 PSoC 6: CY8C62xA,在闪存中存储了 2 个相同的图像(每个图像 1MB)。 这让我能够更轻松地升级图像并在它们之间切换。 我在 CM4 内核上使用 RTOS,而 CM0p 是裸机。 计划: 我想在映像的开头放置一个应用程序引导加载器,以处理一些额外的逻辑,并在将来使用它使应用程序的其余部分成为独立于位置的代码。 应用程序引导加载程序仍在闪存中,并从通常映像的起始位置开始。 我修改了链接器,使应用程序映像按引导加载程序的大小移动,并添加了从引导加载程序到应用程序的跳转逻辑: 1. 禁用 IRQ 并清除待处理 IRQ 关闭 NVIC 中所有已启用的中断 3. 关闭所有可能产生中断的已启用外设 4. 禁用 Systick 及其异常挂起位 正确退出__set_MSP、__set_CONTROL 和__set_PSP 函数 使用函数指针跳转到应用程序,并直接转到 cm0p 内核的 Vtable 地址 这将跳转到应用程序的 CM0p 代码,其中 Cy_SysEnableCM4(m4_addr) 也将启动 cm4 内核。 RTOS 任务运行正常,除 adc 外一切正常。 问题: 我把问题缩小到应用程序 cm4 侧的 cyhal_adc_read() 函数上。 Adc init 正常,但程序在执行该功能时停止。 中断没有启动,但我不确定是 adc 中断还是 IPC 中断出了问题。 当我停止 CPU 运行时,通过 JLink 可以看到没有硬故障,电脑也没有卡在一个地方。 检查地图时,一切正常,矢量表在应该在的位置。 我检查了地图,一切正常,矢量表在应该在的位置,填充正确。 有谁知道需要注意什么,可能出了什么问题? 如果您有问题或需要我提供更多细节,请告诉我。 |
|
相关推荐
1个回答
|
|
在您的项目中,您计划在PSoC 6(CY8C62xA)上使用两个相同的图像(每个图像1MB)来实现更轻松的升级和切换。您的项目布局包括一个应用程序引导加载器,它位于映像的开头,并处理一些额外的逻辑。引导加载器仍在闪存中,并从通常映像的起始位置开始。您还修改了链接器,使应用程序映像按引导加载程序的大小移动,并添加了从引导加载程序到应用程序的跳转逻辑。
关于ADC中断问题,您需要确保在PSoC 6上正确配置和使用ADC中断。以下是一些建议和步骤: 1. 配置ADC:在PSoC Creator中,选择所需的ADC组件并配置其参数,如分辨率、采样率等。 2. 配置中断:在PSoC Creator中,选择所需的中断组件(如CM4的中断或CM0p的中断),并将其连接到ADC的中断输出。 3. 编写中断服务例程(ISR):在您的代码中,编写一个中断服务例程来处理ADC中断。在这个例程中,您可以读取ADC值、执行所需的处理,并在必要时更新应用程序状态。 4. 配置中断优先级:根据您的应用程序需求,配置中断优先级以确保中断能够正确地处理。 5. 启用中断:在引导加载器和应用程序代码中,确保在适当的时候启用中断。 6. 测试和调试:在实际硬件上测试您的应用程序,确保ADC中断能够正确触发并处理。 7. 优化性能:根据您的应用程序需求,优化ADC中断处理以提高性能和响应速度。 通过遵循这些步骤,您应该能够在PSoC 6上成功地实现和使用ADC中断。如果您在实现过程中遇到任何问题,请随时提问,我会尽力帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5614 浏览 2 评论
4083 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3597 浏览 9 评论
1208 浏览 8 评论
3502 浏览 7 评论
421浏览 2评论
252浏览 2评论
359浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5627浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
427浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 23:17 , Processed in 0.565126 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号