博客
关于我
ARM体系结构(三)——iROM——九鼎创展 x210V3s
阅读量:57 次
发布时间:2019-02-25

本文共 1707 字,大约阅读时间需要 5 分钟。

iROM?BL1??????

iROM?????

iROM????????????????????????????????????????

  • ?????????????????????????????????
  • ?????????????????????????????????
  • ????????????????????????
  • ????????????????????????????
  • ????????????????????????????
  • ??PLL???????????????????????
  • ??BL1??????SRAM???BL1??????iROM???SRAM????
  • ???????????????????????
  • ??????????????????????
  • ???BL1?????????????BL1?????????
  • ???iROM???????????????????????????????????

    BL1????

    BL1????????????????????

  • ????????

    • ??????????????
    • ???DRAM????????????????
    • ???????????????????????
    • ????????????????????????
    • ??BL2?DRAM???BL2??????????????
    • ???BL2??????????BL2???????
  • ??????

    • ????????????????
    • ??????????????????????????
  • ???BL1????16???????????????????

    ????

    ????????????????????????????????????

    ; ??????
    ldr r0, =0xE010_E81C
    unsigned int* p = 0xE010_E81C;
    ; ?????
    ldr r1, [r0]
    unsigned int val = *p;
    ; ???????????
    orr r1, r1, #0x300
    val = val | 0x300;
    orr r1, r1, #0x1
    val = val | 0x1;
    ; ???????
    str r1, [r0]
    *p = val;

    ?????

    ?????????????????????????????????mkv210_image.c?????????

    #ifndef __MKV210_CHECKSUM_H__
    #define __MKV210_CHECKSUM_H__
    #include
    #define CHECKSUM_MAGIC 0x12345678
    #define CHECKSUM_SIZE 32
    // ????????????
    int compute_checksum(const char* image_path, uint32_t** checksum) {
    *checksum = malloc(CHECKSUM_SIZE * sizeof(uint32_t));
    FILE* fp = fopen(image_path, "rb");
    if (!fp) {
    return -1;
    }
    uint32_t sum = 0;
    uint8_t buffer[1024];
    while (fread(buffer, sizeof(uint8_t), 1024, fp) != 0) {
    sum += crc32(buffer, 1024);
    }
    memcpy(*checksum, (uint32_t*)(&sum), CHECKSUM_SIZE);
    fclose(fp);
    return 0;
    }
    #endif

    ??

    iROM?BL1????????????????????????????????????????????????????????????????

    转载地址:http://ecq.baihongyu.com/

    你可能感兴趣的文章
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>
    Netty工作笔记0025---SocketChannel API
    查看>>
    Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
    查看>>
    Netty工作笔记0077---handler链调用机制实例4
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>