
全志A40i
全志A40i开发总结
codeos
这个作者很懒,什么都没留下…
展开
-
全志A40i开发笔记 - u-boot启动内核
1. 生成 sunxi_mbr.fex(1) 生成 sys_partition.bin$ script sys_partition.fex(1) 生成 boot-resource.fex$ fsbuild boot-resource.ini split_xxxx.fex // 注意boot-resource.ini文件里面的斜杠方向,可能根据windows或linux平台需要修改调整...原创 2021-08-18 16:26:56 · 3390 阅读 · 0 评论 -
全志A40i开发笔记 - boot0(4)
boot0 启动 u-boot通过PhoenixSuit烧录的镜像,将boot0 烧录到了flash中偏移地址为8K的地方,而u-boot则被加了一个“头”:然后1K对齐,重新打包生成的u-boot文件叫做 boot_package.fex,被烧录到了 16400K 偏移位置处,而且作为备份还烧录了两个位置,另一个在 12288K 偏移处boot0跳转到u-boot之前会对 boot_package.fex前面的1K大小的结构头进行简单的校验关于 boot_package.fex文件的生成大概原创 2021-08-17 08:18:33 · 2520 阅读 · 4 评论 -
全志A40i开发笔记 - boot0(3)
memset函数与定义数组自动填充我在函数当中定义了这样个数组char buf[10] = {0};意思是定义一个长度为10的char数组,并且自动填充为0;编译的时候发现报错:提示未定义memset,what?那就再猜测一下吧,所谓的自动填充,可能就是自动调用memset来填充的然后我改了一下代码:char buf[10] = {0,0,0,0,0,0,0,0,0,0};手动填充后,编译成功...原创 2021-08-12 16:33:25 · 366 阅读 · 0 评论 -
全志A40i开发笔记 - boot0(2)
增加printf格式化打印字符串功能添加console.c文件#include <stdarg.h>#include <common.h>typedef unsigned int u32;void sunxi_serial_putc (char c);void puts(const char *s) { char *src = (char *)s; while(*src != '\0') { sunxi_serial_putc(*s原创 2021-08-12 15:00:13 · 542 阅读 · 0 评论 -
全志A40i开发笔记 - boot0(1)
boot0镜像文件分布如图:头部是一个大小0x2F8的结构体,然后是64字节的一个数组,后面才是真正的代码段刚开始编译的时候,发现始终无法在编译好的镜像头部找到 BT_head 和 boot0_hash_value ,后来发现是由于精简了代码,在代码中没有调用 BT0_head 和 boot0_hash_value 所以这两个块没有被链接进去,虽然在链接脚本中已经指定了这两个变量的位置,竟然也没有被编译进去,不知道修改编译器关于优化相关的参数会不会强制把他们两个链接进去。然后在代码中调用一下这两个变原创 2021-08-12 11:40:39 · 894 阅读 · 0 评论