DAPSCNC

  • 2024-06-09
  • 发表了主题帖: 【兆易GD32H759I-EVAL】GD32H759I-EVAL开发板与STM32H743兼容性测试失败

      很遗憾,测试发现GD32H759与STM32H743并不能程序兼容(可能是我太菜)。我曾经测试过GD32F470与STM32F429的兼容性,发现STM32F429的程序可以直接下载进GD32F470并完美运行。使用STM32F429的程序,超频到240Mhz,在STM32F429上可以运行,但是芯片轻微发热;直接将程序下载到GD32F470上可以完美运行并基本无发热现象。这次突发奇想想要测试一下GD32H759能不能运行STM32H743程序,直接下载后发现并不行。   测试STM32H743IIT6 Hal库的LED点灯程序(程序例程来源反客科技)。keil修改芯片为GD32H759IM,编译后可以正常下载。但是下载后芯片直接无法运行,仿真也无法仿真。 下载完hal库例程后,芯片直接锁机了,无法再使用GDlink进行下载程序,并且将BOOT0上拉后,也无法用串口下载程序。解决方法是将BOOT0上拉,复位,并用GDlink下载GD32H759的程序。程序下载完成后就正常了。   然后我再尝试了STM32H743IIT6 寄存器点灯程序(程序来源于正点原子例程),keil修改芯片为GD32H759IM,编译后同样可以正常下载,但是依然无法执行。这次可以进行仿真,但是仿真就直接进入HardFault_Handler了。 综上所述,GD32H759并不能兼容替代STM32H743。有这方面需求的用户慎重考虑了。   参阅GD32官方资料,也并没有找到STM32H7xx移植到GD32H7xx的文档,貌似此芯片确实不能替换STM32使用。但是看到了GD32F4xx移植到GD32H7xx的文件,里面指出部分外设是兼容的,因为之前测试过STM32F429程序兼容GD32F470。后面尝试将STM32F429的程序下载到GD32H759上,发现也是运行不了的。看来GD32H759想要用起来就必须用GD官方的库重新写了,无法使用ST的芯片直接替换。      

  • 2024-05-19
  • 发表了主题帖: 【兆易GD32H759I-EVAL】GD32H759I-EVAL开发板快速上手指南

    1、在GD32官网下载GD32H759资料 GD32H7xx_Demo_Suites_V1.2.0 包含开发板原理图资料及使用指南 GD32H7xx_AddOn_V1.2.0 Keil pack包 2、安装keil pack包。 3、尝试打开GD32H7xx_Demo_Suites_V1.2.0\GD32H759I_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED\MDK-ARM\GD32H759I_EVAL.uvproj进行编译。   这里我卡了几天,编译过程不顺利。做了一些改动,编译成功了,但是无法下载。最后发现是keil版本问题。大家在编译之前一定要先确认自己的keil版本,文档中介绍例程是基于 Keil MDK-ARM 5.29 uVision5的。理论上高于这个版本就可以。下面是 查看kei版本方法     下面是我踩的坑,使用的是keil 5.25版本,编译错误的改动,由于没有下载成功,并没有验证其运行效果,如果出现相同报错,尝试按照上面方法解决。   第一次编译出现报错MPU_AP_NO_ACCESS和MPU_REGION_SIZE_32B未定义。我没有找到,尝试从STM32H7抄过来。 找到宏定义位置并替换 #define   MPU_REGION_SIZE_32B      ((uint8_t)0x04) #define   MPU_REGION_SIZE_64B      ((uint8_t)0x05) #define   MPU_REGION_SIZE_128B     ((uint8_t)0x06) #define   MPU_REGION_SIZE_256B     ((uint8_t)0x07) #define   MPU_REGION_SIZE_512B     ((uint8_t)0x08) #define   MPU_REGION_SIZE_1KB      ((uint8_t)0x09) #define   MPU_REGION_SIZE_2KB      ((uint8_t)0x0A) #define   MPU_REGION_SIZE_4KB      ((uint8_t)0x0B) #define   MPU_REGION_SIZE_8KB      ((uint8_t)0x0C) #define   MPU_REGION_SIZE_16KB     ((uint8_t)0x0D) #define   MPU_REGION_SIZE_32KB     ((uint8_t)0x0E) #define   MPU_REGION_SIZE_64KB     ((uint8_t)0x0F) #define   MPU_REGION_SIZE_128KB    ((uint8_t)0x10) #define   MPU_REGION_SIZE_256KB    ((uint8_t)0x11) #define   MPU_REGION_SIZE_512KB    ((uint8_t)0x12) #define   MPU_REGION_SIZE_1MB      ((uint8_t)0x13) #define   MPU_REGION_SIZE_2MB      ((uint8_t)0x14) #define   MPU_REGION_SIZE_4MB      ((uint8_t)0x15) #define   MPU_REGION_SIZE_8MB      ((uint8_t)0x16) #define   MPU_REGION_SIZE_16MB     ((uint8_t)0x17) #define   MPU_REGION_SIZE_32MB     ((uint8_t)0x18) #define   MPU_REGION_SIZE_64MB     ((uint8_t)0x19) #define   MPU_REGION_SIZE_128MB    ((uint8_t)0x1A) #define   MPU_REGION_SIZE_256MB    ((uint8_t)0x1B) #define   MPU_REGION_SIZE_512MB    ((uint8_t)0x1C) #define   MPU_REGION_SIZE_1GB      ((uint8_t)0x1D) #define   MPU_REGION_SIZE_2GB      ((uint8_t)0x1E) #define   MPU_REGION_SIZE_4GB      ((uint8_t)0x1F) //#define MPU_REGION_SIZE_32B             ARM_MPU_REGION_SIZE_32B   /*!< MPU region size is 32 bytes, the smallest supported region size is 32 bytes */ //#define MPU_REGION_SIZE_64B             ARM_MPU_REGION_SIZE_64B   /*!< MPU region size is 64 bytes */ //#define MPU_REGION_SIZE_128B            ARM_MPU_REGION_SIZE_128B  /*!< MPU region size is 128 bytes */ //#define MPU_REGION_SIZE_256B            ARM_MPU_REGION_SIZE_256B  /*!< MPU region size is 256 bytes */ //#define MPU_REGION_SIZE_512B            ARM_MPU_REGION_SIZE_512B  /*!< MPU region size is 512 bytes */ //#define MPU_REGION_SIZE_1KB             ARM_MPU_REGION_SIZE_1KB   /*!< MPU region size is 1K bytes */ //#define MPU_REGION_SIZE_2KB             ARM_MPU_REGION_SIZE_2KB   /*!< MPU region size is 2K bytes */ //#define MPU_REGION_SIZE_4KB             ARM_MPU_REGION_SIZE_4KB   /*!< MPU region size is 4K bytes */ //#define MPU_REGION_SIZE_8KB             ARM_MPU_REGION_SIZE_8KB   /*!< MPU region size is 8K bytes */ //#define MPU_REGION_SIZE_16KB            ARM_MPU_REGION_SIZE_16KB  /*!< MPU region size is 16K bytes */ //#define MPU_REGION_SIZE_32KB            ARM_MPU_REGION_SIZE_32KB  /*!< MPU region size is 32K bytes */ //#define MPU_REGION_SIZE_64KB            ARM_MPU_REGION_SIZE_64KB  /*!< MPU region size is 64K bytes */ //#define MPU_REGION_SIZE_128KB           ARM_MPU_REGION_SIZE_128KB /*!< MPU region size is 128K bytes */ //#define MPU_REGION_SIZE_256KB           ARM_MPU_REGION_SIZE_256KB /*!< MPU region size is 256K bytes */ //#define MPU_REGION_SIZE_512KB           ARM_MPU_REGION_SIZE_512KB /*!< MPU region size is 512K bytes */ //#define MPU_REGION_SIZE_1MB             ARM_MPU_REGION_SIZE_1MB   /*!< MPU region size is 1M bytes */ //#define MPU_REGION_SIZE_2MB             ARM_MPU_REGION_SIZE_2MB   /*!< MPU region size is 2M bytes */ //#define MPU_REGION_SIZE_4MB             ARM_MPU_REGION_SIZE_4MB   /*!< MPU region size is 4M bytes */ //#define MPU_REGION_SIZE_8MB             ARM_MPU_REGION_SIZE_8MB   /*!< MPU region size is 8M bytes */ //#define MPU_REGION_SIZE_16MB            ARM_MPU_REGION_SIZE_16MB  /*!< MPU region size is 16M bytes */ //#define MPU_REGION_SIZE_32MB            ARM_MPU_REGION_SIZE_32MB  /*!< MPU region size is 32M bytes */ //#define MPU_REGION_SIZE_64MB            ARM_MPU_REGION_SIZE_64MB  /*!< MPU region size is 64M bytes */ //#define MPU_REGION_SIZE_128MB           ARM_MPU_REGION_SIZE_128MB /*!< MPU region size is 128M bytes */ //#define MPU_REGION_SIZE_256MB           ARM_MPU_REGION_SIZE_256MB /*!< MPU region size is 256M bytes */ //#define MPU_REGION_SIZE_512MB           ARM_MPU_REGION_SIZE_512MB /*!< MPU region size is 512M bytes */ //#define MPU_REGION_SIZE_1GB             ARM_MPU_REGION_SIZE_1GB   /*!< MPU region size is 1G bytes */ //#define MPU_REGION_SIZE_2GB             ARM_MPU_REGION_SIZE_2GB   /*!< MPU region size is 2G bytes */ //#define MPU_REGION_SIZE_4GB             ARM_MPU_REGION_SIZE_4GB   /*!< MPU region size is 4G bytes */ #define  MPU_AP_NO_ACCESS      ((uint8_t)0x00) #define  MPU_AP_PRIV_RW        ((uint8_t)0x01) #define  MPU_AP_PRIV_RW_UNPRIV_RO    ((uint8_t)0x02) #define  MPU_AP_FULL_ACCESS    ((uint8_t)0x03) #define  MPU_AP_PRIV_RO        ((uint8_t)0x05) #define  MPU_AP_PRIV_UNPRIV_RO    ((uint8_t)0x06) //#define MPU_AP_NO_ACCESS                ARM_MPU_AP_NONE           /*!< MPU access permission no access */ //#define MPU_AP_PRIV_RW                  ARM_MPU_AP_PRIV           /*!< MPU access permission privileged access only */ //#define MPU_AP_PRIV_RW_UNPRIV_RO        ARM_MPU_AP_URO            /*!< MPU access permission unprivileged access read-only */ //#define MPU_AP_FULL_ACCESS              ARM_MPU_AP_FULL           /*!< MPU access permission full access */ //#define MPU_AP_PRIV_RO                  ARM_MPU_AP_PRO            /*!< MPU access permission privileged access read-only */ //#define MPU_AP_PRIV_UNPRIV_RO           ARM_MPU_AP_RO             /*!< MPU access permission privileged and unprivileged read-only access */   继续编译出现错误    No .ANY selector matches 。。。 修改keil配置options>C/C++>取消勾选Execute-only Code。 之后编译完成。   下载过程中一直提示芯片连接失败,应该也是keil版本问题,不支持GDlink。重新安装新版本keil以后问题解决。     4、开发板下载程序。  需要注意开发板左侧的两个USB口和左下的USB口不能进行供电。供电只能通过DC 5V,或者右下角USB口的GD LINK进行供电,使用左上角的开关SW1进行切换。 使用开发板自带的GDlink下载程序,GDlink应该就是通过DAPlink改过来的。在debug中选择CMSIS-DAP-Debugger。   5、下载完LED例程后按下图更改跳线后就可看到LED闪烁。        

  • 2024-04-30
  • 回复了主题帖: 测评入围名单:兆易GD32H759I-EVAL

    个人信息确认无误,确认可以完成测评分享计划

最近访客

< 1/2 >

统计信息

已有23人来访过

  • 芯积分:20
  • 好友:--
  • 主题:2
  • 回复:1

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言