aozima
aozima
拒绝白嫖,拒绝键盘侠!

注册于 12 years ago

回答
751
文章
4
关注者
34

你看下PC和LR是在线程中,还是调度器启动前。
如果是在调度器启动前,那么应该在启动代码中打开NEON支持。

如果是在线程中,请使用新版本的cortex-A的移植:

  • 线程默认都是不开FPU和NEON的,
  • 当某个线程首次执行到FPU或NEON指令时,会进入末定义指令异常,然后再打开FPU/NEON。

你的芯片型号是哪个?是否支持NEON?还是仅有FPU。

如果你的代码没改坏的话,较大可能的原因是:没有打开对应的宏开关,却让这个文件参与编译了。
你用哪个版本?用什么开发工具?

你看到的是对的。然后在真正使用时会更新配置,你可以在驱动的配置中下个断点就明白了。

试想下:你一个线程正在使用spi_send发送很长的数据,此时另外一个线程直接把SPI配置给了。

用sqlite时,栈先开到16K或以上,跑完看实际用了多少。

说明你没有把分区表打进boot中,所以找不到。
你需要用分区表工具把分区表附加在boot后面。

如果不用工具,可以直接在代码中使用结构体来定义分区表。

FAL_PART_HAS_TABLE_CFG
#ifdef FAL_PART_HAS_TABLE_CFG
    partition_table = &partition_table_def[0];
    partition_table_len = sizeof(partition_table_def) / sizeof(partition_table_def[0]);
#else
    /* load partition table from the end address FAL_PART_TABLE_END_OFFSET, error return 0 */
#endif /* FAL_PART_HAS_TABLE_CFG */

  • 找个同型号有UART或(JTAG/SWD)的板子来调
  • 先不要用bootloader,调好再改。

你这只是RMII吧,读PHY的寄存器,不管MII/RMII有没有接线,都可以读的。
如果不通,建议检查硬件,如复位和接线。如果有必要,用逻辑分析仪测下MDC和MDIO。

回到
顶部

发布
问题

投诉
建议