已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

假期做了更多零碎尝试 这里就不多细说 仅做总结 

python环境是必须的 而且要更新到位 开发包里面使用了一些多类型检查方面的新语法 我版本有些低了 只好自己改了下 

MCU开发环境基于platformio 安装很简单 用pip install platformio即可 之后再安装开发包即可 platformio完全可以通过pio命令完成所有需要的操作

目前感觉开发包也有很多问题 比如需要手动在安装好的AgRV_pio\packages\tool-agrv_logic目录下 增加一个package.json文件 不然platformio不认这个目录 后面使用pio会遇到问题

{
  "name": "tool-agrv_logic",
  "version": "1.0.0",
  "description": "tool-agrv_logic",
  "keywords": [
    "tools",
    "logic"
  ],
  "system": [
    "windows_amd64"
  ]
}

vscode不是必须的 我不喜vscode 喜用eclipse 在工程的主目录下 使用命令pio init --ide eclipse就可以用eclipse打开工程了

D:\WORK\custom_ip>pio init --ide eclipse
Resolving debug dependencies...
Project diretory: D:\WORK\custom_ip
PlatformIO Core version: 6.1.15
AgRV Core version: 1.5.0

Already up-to-date.
Updating metadata for the eclipse IDE...
Project has been successfully updated!

但是除了build之类的通用target 还有一些和CPLD方面的target 需要通过命令pio run -t <target>手动执行 也可以手动加到eclipse项目的build target 其中最有用的是prelogic preip logic这三个 建议通过eclipse写/烧MCU代码 CPLD方面还是手动操作就行 反正也需要通过Quartus II和Supra来开发 和eclipse么有关系

debug          Custom    batch         Create Batch   Create Batch bitstream agm_custom_ip_debug_batch.bin
debug          Custom    batch_upload  Upload Batch   Upload Batch bitstream agm_custom_ip_debug_batch.bin
debug          Custom    gc            Garbage Clean  Cleaning up build leftover garbages
debug          Custom    logic         Upload LOGIC   Programming LOGIC bitstream top.bin
debug          Custom    logic_clean   Clean LOGIC    Cleaning up logic environment
debug          Custom    preip         Prepare IP     Preparing LOGIC IP compilation project top
debug          Custom    unlock        Unlock Flash   Setting Flash read unprotect (Unlock)
debug          Custom    wipe          Wipe Flash     Wiping Flash to Factory Settings
debug          Platform  upload        Upload

top            Custom    batch         Create Batch   Create Batch bitstream agm_custom_ip_top_batch.bin
top            Custom    batch_upload  Upload Batch   Upload Batch bitstream agm_custom_ip_top_batch.bin
top            Custom    gc            Garbage Clean  Cleaning up build leftover garbages
top            Custom    logic         Upload LOGIC   Programming LOGIC bitstream top.bin
top            Custom    logic_clean   Clean LOGIC    Cleaning up logic environment
top            Custom    prelogic      Prepare LOGIC  Preparing LOGIC compilation project top
top            Custom    unlock        Unlock Flash   Setting Flash read unprotect (Unlock)
top            Custom    wipe          Wipe Flash     Wiping Flash to Factory Settings
top            Platform  upload        Upload

大概的说 开发设计包括3个部分 MCU的代码  CPLD的设计 以及.ve引脚设计 流程大概如下

  1. 首先需要改写XXXXXXXXXXXXXi 确定board/board_XXXXXXXX/board_XXXXXXXXvice/ip_name/logic_dir等关键参数

  2. 编写board_XXXXXXXX 内容包括时钟的设计 以及MCU/CPLD/外部Pin三方的互联 值得注意的是 开发包中例子的.ve文件都是针对100引脚的 32/48/64引脚的 都需要自己重新编写

  3.  使用pio run -e <环境> -t prelogic来生成CPLD工程 此外 它还会根据.ve文件 生成MCU开发需要的时钟方面的.hx头文件  以及引脚关联有关的其他文件 所以这步即使是不做CPLD开发 也是必须的

  4. 然后就可以使用各种IDE来开发MCU程序了 CPLD方面使用Quartus II来设计 产生.vo文件给Supra使用 需要注意的是Quartus II需要使用正式版 web/lite版本是不行的 官网文档有明确提出这点 此外需要加上cyclone IV和MAX系列的设备包 (仿altera cyclone IV很正常 国内早就实现假货满天飞了 但是为啥要加MAX系列设备包我不太理解 但是也加了)

  5. 最后都需要Supra的compile功能来完成布线 产生.bin文件 即使不做CPLD 引脚映射也需要的

  6. 烧录可以用openocd 可以先烧布线 在flash的最后102400 bytes 然后再烧MCU部分 一般从0x80000000开始



MCU部分 我一直疑惑这是一个固化的RISCV软核 还是一个真正的硬核 但是官网找不到解答 但是其更高端产品是确定带arm硬核的 它提供了类似systick的MTime 以及类似stm32f103的高级定时器 常用的SPI/I2C/UART都有 但是高级应用方面稍有些简陋 

值得一提的是它的GPIO 除了仍然要注意和SPI/I2C/UART/Timer等的共用冲突之外 上拉下拉开漏都不能简单通过API实现 上拉下拉需要在.asf文件中通过命令实现 开漏需要在.ve文件中指定 

有意思的是 GPIO的位掩码非常具有特色 我之前遇到的 假如仅仅需要修改GPIO某些引脚 要么通过读-修改-写的方式 要么通过arm的置位/清除寄存器或者位带操作 而这里是通过不同的访问地址来实现 举个例子 AG32VF的GPIO1 有8个位  假如只要修改第2第5位 就使用GPIO1的data寄存器地址 加上偏移0b100100来读写

CPLD方面 2k的LEs说大不大 实现不了几个复杂的接口 但是说小也不小  甚至可以搭NIOS软核了 而硬IP方面 只有一个PLL 4个Mem9K 样例里面有一些有用的代码 比如ahb2qspi.v ahb2ram.v ram2ahb.v等等 Quartus自带一些有意思的软核 但我还没有实验

MCU 固有外设 CPLD 三方 可以通过AHB(还支持4路DMA) 以寄存器方式 或者Mem9K搭建的buffer互动 CPLD可主可从  也可以通过GPIO等外设连接的方式使用 除了PLL CPLD还可使用MCU时钟或者总线时钟  可以引发4条MCU外部中断线 ... 嗯 可以从下图大概看出 可以和MCU/IO哪些地方互连 (不过 也可能不是所有信号都能用 毕竟有些信号.ve文件可能不支持)

x2.png

文号 / 932891

千古风流
名片发私信
学术分 1
总主题 52 帖总回复 894 楼拥有证书:进士 学者 机友
注册于 2020-01-22 18:44最后登录 2024-11-21 18:33
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:上海

个人简介

个人开源项目: m24h.github.io

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}