完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Station P2(ROC-RK3568-PC) 最简裸机代码
没啥功能, 被 SoC bootrom 加载到 internal_sram 0xfdcc1000 处运行, 等待一定时间后,又返回 bootrom 运行。 编译得到 rk3568_loader.bin, 使用 RKDevTool_Release_v2.84 工具烧写到板了上的 eMMC 内。 RKDevTool_Release_v2.84 使用的的地址配置如下图所未: 编译得到 rk3568_loader.bin, 烧写到 spinor flash 也可以运行(RKDevTool 默认是烧到 spinor flash,无需特殊操作) 烧写到 eMMC 也可以运行,但因为要切换目标存储,步骤比较繁琐,具体如下: 1). 板子启动到 MASKROM 状态 2). 下载 ROC-RK3568-PC 的 MiniLoaderAll.bin 3). 在 RKDevTool 在高级功能界面,点击 "Boot:" 对应的右边三个点的按钮, 选择前面下载的 MiniLoaderAll.bin,点击对应最右边的下载按钮, 这个操作是把 MiniLoaderAll.bin 下载到内存运行,不需要重启设备, 4). 点击 "读取存储列表" 按钮,右边的列表中就会显示出来板子上的存储设备, (0) 结尾的是板子上有的存储 (x) 结尾的是板子上没有的存储 (√) 结尾的是当前选中的存储 5). 在列出来的存储清单中,选择 "Emmc(0)",再点击 "切换存储", 切换成功清单中的 "Emmc(0)" 会变成 "Emmc(√)" 6). 回到 RKDevTool 第一页的 "下载镜像" 界面,点击 "run" ,即是烧到 eMMC 中。 rk3568tpl_start.S :
main.c :
rk3568tpl.lds
rk3568tpl_start.S 中只有一行代码, 无状态跳转到C函数 save_boot_params() 这个跳转不改变 lr 寄存器的值, 所以如果 save_boot_params() 结束返回的话, 并不是返回到 rk3568tpl_start.S 中 "b save_boot_params" 的下一行指令, 而是最后一次改变 lr 寄存器的跳转处:这个跳转在 bootrom 代码中! 结合 rkuboot 中的源码注释,可以猜想得到,bootrom 应该有这样的代码: 1). copy tpl.bin into sram addr 0xfdcc1000 2). bl 0xfdcc1000 3). switch(x0) { case 1: .... search next bootable storage device case 2: .... continue running otg download codes under MASKROM MODE } 第3步的x0,就是 save_boot_params() 返回的 2。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
533 浏览 0 评论
803 浏览 1 评论
700 浏览 1 评论
1926 浏览 1 评论
3171 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:46 , Processed in 0.625804 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号