离线
BROM的责任就是依次寻找合法的引导程序, TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM
因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些
离线
那这个,用代码怎么表示?
都可以的,链接脚本很强大,放变量,代码,都行
因为要跳转,所以前32k代码,编写时,需要位置无关
代码,本质就是机器码,copy到iram中,然后pc指过去,就可以了
这段代码,要求位置无关
用相对寻址指令
这段空间,一般做向量表,或者mmu映射表
大部分系统,很少用这块区域
一段小代码,在hacker世界,他们叫payload
利用某个漏洞,植入payload,然后执行payload
这样就能越权了
离线
f1c100s有没有这个iram,越发看不明白了,boot0这个代码是不是就是BROM
BROM是固化在芯片内部的, boot0 是 处于spi flash/TF卡/eMMC 最前面的程序,一般用来初始化必要的硬件如DRAM等。
晕哥,uboot-sunxi-with-spl这个文件是不是包含两部分内容,文件前面32k是spl后面是uboot?
对,前面32k就是传说中的boot0,
全志的SDK里面都叫boot0, 全志的SDK里面boot0是不开源的。
离线