完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我打算以裸机配置在 P1020RDB 上运行一些简单的应用程序。虽然在核心 0 中运行某些东西相对简单,但我无法在核心 1 上运行任何东西。我编写了以下代码:
volatile unsigned int change_me = 2; void main(void) { change_me += 1; 返回; } 当在核心 0 上运行它时(例如,通过将二进制文件上传到 0x04000000 并运行“go 0x04000000”),当应用程序结束并且 U-Boot 提示符返回时,我可以看到对应于 change_me 的内存已更新。当运行“cpu 1 release 0x04000000”时,似乎 cpu 1 卡在了某个地方——change_me 的内存位置没有更新,核心永远不会回到我释放它之前的自旋循环(虽然我不知道它是否是应该在一切顺利时返回那里)。当运行“cpu 1 status”时,我可以看到“addr”从 0x1 更新到 0x3,正如内核离开其自旋循环时所预期的那样,但我不知道代码或内存写入是否存在问题,因为我我目前没有调试探针。 据我了解 U-Boot 代码,一旦我释放 cpu 1,它就会为 64MB 页面创建一个 TLB 条目,使用“cpu 1 release”命令中给出的地址(在本例中为 0x04000000)屏蔽为64MB 的倍数。在这种情况下,由于我的可执行文件(文本和数据)从 0x04000000 变为 0x04000028,我希望一切正常。 在最后一次尝试中,我在 0x3ff33500 中部署了我的代码(即在启动期间已经为 cpu1 映射的 4KB TLB 条目中),但结果是相同的——核心 0 运行代码没有问题,而核心 1 似乎丢失了。 当我尝试在 T1042 板上释放辅助内核时得到完全相同的结果,我知道我在某处出错了,但我不明白在哪里。如果有人有任何工作代码的工作示例(没有操作系统的复杂性),那将对我很有帮助。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1840个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36126 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4245 浏览 0 评论
5848 浏览 1 评论
6622 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4065 浏览 0 评论
503浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
478浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
480浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
563浏览 2评论
607浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 06:20 , Processed in 1.145378 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191