xusiwei1236

  • 2022-05-22
  • 回复了主题帖: 我看到了risc-v linux系统

    没有GPU,运行桌面系统体验确实会比较差,就这方面而言和树莓派还有差距

  • 回复了主题帖: 给先楫HPM6750EVKMINI画一个LCD扩展板

    所以,楼主是要开钢网吗?

  • 发表了日志: 【先楫HPM6750测评】GPIO点灯和按键控制

  • 发表了主题帖: 【先楫HPM6750测评】GPIO点灯和按键控制

    本帖最后由 xusiwei1236 于 2022-5-22 20:12 编辑 【先楫HPM6750测评】GPIO点灯和按键控制 上篇帖子中,我们介绍了如何安装和激活SEGGER Embedded Studio,以及使用Embedded Studio进行编译、调试。本篇将会介绍如何点亮开发板上的三色LED灯,以及如何使用开发板上的LED控制三色LED灯。 GPIO点灯 创建闪灯程序 在hpm_sdk/samples子目录下创建gpio_led目录,将hello_world目录内的src目录和CMakeLists.txt复制到gpio_led目录下(当然,嫌麻烦直接在hello_world的基础上进行修改也是可以的),并将src/hello_world.c重命名为gpio_led.c,并将文件内容修改为: #include <stdio.h> #include "board.h" #include "hpm_gpio_drv.h" #define LED_FLASH_PERIOD_IN_MS 500 int main(void) { int u; board_init(); board_init_led_pins(); //board_timer_create(LED_FLASH_PERIOD_IN_MS, board_led_toggle); gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, 0); gpio_write_pin(BOARD_G_GPIO_CTRL, BOARD_G_GPIO_INDEX, BOARD_G_GPIO_PIN, 0); gpio_write_pin(BOARD_B_GPIO_CTRL, BOARD_B_GPIO_INDEX, BOARD_B_GPIO_PIN, 0); printf("gpio_led start...\\n"); while(1) { gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, 0); board_delay_ms(LED_FLASH_PERIOD_IN_MS); gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, 1); board_delay_ms(LED_FLASH_PERIOD_IN_MS); } return 0; } CMakeLists.txt文件内容修改为: # Copyright 2021 hpmicro # SPDX-License-Identifier: BSD-3-Clause cmake_minimum_required(VERSION 3.13) find_package(hpm-sdk REQUIRED HINTS $ENV{HPM_SDK_BASE}) project(gpio_led) sdk_compile_definitions(-DBOARD_SHOW_CLOCK=0) sdk_app_src(src/gpio_led.c) generate_ses_project() 编译、运行闪灯程序 在hpm_sdk\samples\gpio_led目录运行:generate_project -b hpm6750evkmini -t flash_xip -f命令生产项目文件。 使用SEGGER Embedded Studio打开生产的项目文件,如下图所示: 编译、运行后,就可以看到红色LED闪烁了: [localvideo]66ff5423aef7ba2cf44ca5cff4fa4088[/localvideo]   三色LED原理图分析 查阅原理图,可以找到三色LED相关的原理图如下: 可以看到三种颜色的控制管脚信息如下: 红色通过PWM1.P0控制,高电平点亮; 绿色通过PWM1.P1控制,高电平点亮; 蓝色通过PWM0.P7控制,高电平点亮; 继续在原理图中搜索PWM1.P0、PWM1.P1和PWM0.P7,可以找到: 这里标号U1的就是HPM6750芯片,PWM1.P0、PWM1.P1和PWM0.P7和引脚标号的对应关系如下: PWM1.P0对应PB19,控制红色; PWM1.P1对应PB18,控制绿色; PWM9.P7对应PB20,控制蓝色; 上面的分析,这和board.h文件里面的代码一致: #define BOARD_R_GPIO_CTRL HPM_GPIO0 #define BOARD_R_GPIO_INDEX GPIO_DI_GPIOB #define BOARD_R_GPIO_PIN 19 #define BOARD_G_GPIO_CTRL HPM_GPIO0 #define BOARD_G_GPIO_INDEX GPIO_DI_GPIOB #define BOARD_G_GPIO_PIN 18 #define BOARD_B_GPIO_CTRL HPM_GPIO0 #define BOARD_B_GPIO_INDEX GPIO_DI_GPIOB #define BOARD_B_GPIO_PIN 20 让三种颜色依次闪烁 将gpio_led.c修改为: #include <stdio.h> #include "board.h" #include "hpm_gpio_drv.h" #define LED_FLASH_PERIOD_IN_MS 500 int main(void) { int u; board_init(); board_init_led_pins(); //board_timer_create(LED_FLASH_PERIOD_IN_MS, board_led_toggle); gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, 0); gpio_write_pin(BOARD_G_GPIO_CTRL, BOARD_G_GPIO_INDEX, BOARD_G_GPIO_PIN, 0); gpio_write_pin(BOARD_B_GPIO_CTRL, BOARD_B_GPIO_INDEX, BOARD_B_GPIO_PIN, 0); printf("gpio_led start...\\n"); while(1) { gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, 1); board_delay_ms(LED_FLASH_PERIOD_IN_MS); gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, 0); board_delay_ms(LED_FLASH_PERIOD_IN_MS); gpio_write_pin(BOARD_G_GPIO_CTRL, BOARD_G_GPIO_INDEX, BOARD_G_GPIO_PIN, 1); board_delay_ms(LED_FLASH_PERIOD_IN_MS); gpio_write_pin(BOARD_G_GPIO_CTRL, BOARD_G_GPIO_INDEX, BOARD_G_GPIO_PIN, 0); board_delay_ms(LED_FLASH_PERIOD_IN_MS); gpio_write_pin(BOARD_B_GPIO_CTRL, BOARD_B_GPIO_INDEX, BOARD_B_GPIO_PIN, 1); board_delay_ms(LED_FLASH_PERIOD_IN_MS); gpio_write_pin(BOARD_B_GPIO_CTRL, BOARD_B_GPIO_INDEX, BOARD_B_GPIO_PIN, 0); board_delay_ms(LED_FLASH_PERIOD_IN_MS); } return 0; } 重新编译、运行, 就可以看到红绿蓝依次闪烁了: [localvideo]6e0913f7001c0ca5ccacc506086ec1be[/localvideo]   GPIO读取按键状态 接下来,我们尝试使用GPIO读取PBUTN和WBUTN两个按键的状态,并输出到串口中。 首先需要在原理图中找到,按键相关的原理图: 循环读取并打印PBUTN和WBUTN按键状态的代码段: uint32_t count = 0; while (1) { count++; uint8_t pbutn_value = gpio_read_pin(HPM_BGPIO, GPIO_DI_GPIOZ, 2); uint8_t wbutn_value = gpio_read_pin(HPM_BGPIO, GPIO_DI_GPIOZ, 3); printf("[%d] pbutn_value=%d, wbutn_value=%d\\n", count, pbutn_value, wbutn_value); board_delay_ms(500); } 设置PZ02/PZ03引脚功能 经测试发现,默认情况下,这两个按键分别是长按关机和长按休眠的功能。 可以使用如下代码段,将这两个引脚功能设置为普通GPIO,并设置为内部上拉状态: static void init_butn_as_gpio() { uint32_t pad_ctl = IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1); // 设置PZ02、PZ03为GPIO功能 HPM_BIOC->PAD[IOC_PAD_PZ02].FUNC_CTL = IOC_PZ02_FUNC_CTL_BGPIO_Z_02; HPM_BIOC->PAD[IOC_PAD_PZ03].FUNC_CTL = IOC_PZ03_FUNC_CTL_BGPIO_Z_03; // 设置PZ02、PZ03为GPIO的模式为 内部上拉 HPM_IOC->PAD[IOC_PAD_PZ02].PAD_CTL = pad_ctl; HPM_IOC->PAD[IOC_PAD_PZ03].PAD_CTL = pad_ctl; } 使用PBUTN和WBUTN按键控制三色LED的颜色 本小节实现——通过PBUTN和WBUTN两个按键,切换三色LED等的颜色: 按PBUTN按键,颜色切换顺序为——红、绿、蓝 按WBUTN按键,颜色切换顺序为——蓝、绿、红 长按,则颜色会一直轮流切换 松开,切换停止 完整代码: #include <stdio.h> #include "board.h" #include "hpm_gpio_drv.h" static void init_butn_as_gpio() { uint32_t pad_ctl = IOC_PAD_PAD_CTL_PE_SET(1) | IOC_PAD_PAD_CTL_PS_SET(1); // 设置PZ02、PZ03为GPIO功能 HPM_BIOC->PAD[IOC_PAD_PZ02].FUNC_CTL = IOC_PZ02_FUNC_CTL_BGPIO_Z_02; HPM_BIOC->PAD[IOC_PAD_PZ03].FUNC_CTL = IOC_PZ03_FUNC_CTL_BGPIO_Z_03; // 设置PZ02、PZ03为GPIO的模式为 内部上拉 HPM_IOC->PAD[IOC_PAD_PZ02].PAD_CTL = pad_ctl; HPM_IOC->PAD[IOC_PAD_PZ03].PAD_CTL = pad_ctl; } void app_led_write(uint32_t index, uint8_t state) { switch (index) { case 0: gpio_write_pin(BOARD_R_GPIO_CTRL, BOARD_R_GPIO_INDEX, BOARD_R_GPIO_PIN, state); break; case 1: gpio_write_pin(BOARD_G_GPIO_CTRL, BOARD_G_GPIO_INDEX, BOARD_G_GPIO_PIN, state); break; case 2: gpio_write_pin(BOARD_B_GPIO_CTRL, BOARD_B_GPIO_INDEX, BOARD_B_GPIO_PIN, state); break; default: /* Suppress the toolchain warnings */ break; } } uint32_t app_led_next(uint32_t index) { return (index + 1) % 3; } uint32_t app_led_prev(uint32_t index) { return (index + 3 - 1) % 3; } int main(void) { uint32_t current = 0, next = 0; board_init(); board_init_led_pins(); init_butn_as_gpio(); while (1) { // 读取按键状态 uint8_t pbutn_value = gpio_read_pin(HPM_BGPIO, GPIO_DI_GPIOZ, 2); uint8_t wbutn_value = gpio_read_pin(HPM_BGPIO, GPIO_DI_GPIOZ, 3); // 按键状态处理 if (pbutn_value == 0) { printf("pbutn_value=%d, wbutn_value=%d\\n", pbutn_value, wbutn_value); next = app_led_next(current); app_led_write(current, 0); // app_led_write(next, 1); current = next; } else if (wbutn_value == 0) { printf("pbutn_value=%d, wbutn_value=%d\\n", pbutn_value, wbutn_value); next = app_led_prev(current); app_led_write(current, 0); // app_led_write(next, 1); current = next; } app_led_write(current, 1); // 放这里,第一次能够点亮红色 // 延时,控制扫描频率 board_delay_ms(100); } return 0; } 效果演示: [localvideo]8060b44877d78359f7dbdedc1deb9617[/localvideo]   补充说明 点灯的过程中发现,SDK 0.9.0(sdk 0.10.0也有这个问题)里面hpm5760evkmini的LED亮灭的高低电平搞反了。我已经向先楫反馈了这个问题,从他们那里了解到HPM6750EVKMINI板子改版过,旧版本是低电平点亮,新版本是高电平点亮,这块的代码没有更新。他们说会在下一个版本中修复这个问题,目前解决这个问题需要修改几处代码,改动都很简单,具体可以参考我的这条提交记录: https://gitee.com/hpm6750/hpm_sdk/commit/bbc896e4a571e756e4cbac38afcc042409a7957f   代码仓 上面那个提交链接的代码仓:https://gitee.com/hpm6750/hpm_sdk 是我个人建立的用于测试HPM6750 SDK开发的,欢迎Star支持~ 另外,我在码云创建了名为HPM6750的组织,该组织下还有其他代码仓,后续会随着新帖子的发布设置为公开,敬请期待~

  • 回复了主题帖: 给先楫HPM6750EVKMINI画一个LCD扩展板

    HPM6750EVKMINI的IO扩展接口是和ART-Pi兼容的,楼主做出来或许可以和RTT官方的多媒体扩展板(也不便宜,现在两百多了)一较高下

  • 2022-05-20
  • 加入了学习《2022 Digi-Key 物联网创新大赛》,观看 Digi-Key 物联网创新大赛

  • 2022-05-19
  • 回复了主题帖: 【先楫HPM6750测评】CoreMark跑分测试

    freebsder 发表于 2022-5-17 23:23 这个差的有点多呀,主频上去了分值就上去了吗?
    这是单核跑分,双核的话基本上会翻倍

  • 2022-05-15
  • 回复了主题帖: 【先楫HPM6750测评】CoreMark跑分测试

    Jacktang 发表于 2022-5-15 08:54 确实有点疑问,双核同时运行CoreMark测试,分数会翻倍吗?
    基本上是的,我看了coremark源码,它的多核跑分计算方式是:迭代次数*并发数/持续时间。

  • 2022-05-14
  • 发表了主题帖: 【先楫HPM6750测评】CoreMark跑分测试

    本帖最后由 xusiwei1236 于 2022-5-14 22:51 编辑 【先楫HPM6750测评】CoreMark跑分测试 上篇帖子中,我们完成了Embedded Studio开发环境搭建,对Hello World示例进行了编译和调试。 本篇将使用Embedded Studio编译CoreMark程序,并进行coremark跑分测试,同时对HPM6750的跑分结果和STM32部分型号的跑分结果进行对比。 CoreMark简介 什么是CoreMark? 来自CoreMark首页的解释是:
    CoreMark is a simple, yet sophisticated benchmark that is designed specifically to test the functionality of a processor core. Running CoreMark produces a single-number score allowing users to make quick comparisons between processors.
    翻译一下就是:
    CoreMark是一个简单而又精密的基准测试程序,是专门为测试处理器核功能而设计的。运行CoreMark会产生一个“单个数字”的分数,(从而)允许用户在(不同)CPU之间进行快速比较。
    简单来说,就是一个测试CPU性能的程序,类似PC上的Cinebench、CPU-Z之类的CPU性能测试工具。 了解了CoreMark是什么之后,接下来我们尝试在HPM6750开发板上跑一下CoreMark,看看分数是多少。 在HPM6750上运行CoreMark 创建CoreMark项目 HPM SDK样例中已经附带了CoreMark,因此我们直接使用SDK中的coremark程序就行了。 首先,根据上篇帖子中的介绍,使用generate_project命令生成Embedded Studio的项目: generate_project命令执行完毕后,打开生成的hpm6750evkmini_build\segger_embedded_studio子目录,可以看到项目文件已经创建完成了: 双击coremark.emProject文件,默认会使用Embedded Studio打开项目(Embedded Studio安装成功的话): 可以看到,coremark主要的源文件只有6个.c文件。 编译CoreMark项目 点击Embedded Studio的【Build】→【Build coremark】菜单,即可触发编译;稍等一段实际后,编译完成,可以在Output窗口看到Build complete: 运行CoreMark跑分 开始运行之前,我们可以使用串口调试助手(或者其他类似的工具),连接开发板的串口设备。我这里使用的是MobaXterm,Putty或者sscom之类也是可以的。 串口配置是: 波特率115200, 8位数据位, 1位停止位, 无校验位。 点击Embedded Studio的【Debug】→【Go】菜单,即可运行coremark程序: 不需要单步执行,直接点绿色三角形图标(Continue Execution),让程序直接运行。 点击运行按钮后,立刻可以看到串口输出: 这段输出是由CoreMark程序启动时调用board_init输出的,所以在测试刚刚开始就会输出。 运行一段时间后(10秒左右),可以看到跑分结果输出了: 图中的HPMicro字符画是测试刚开始时输出的,下面的部分是最终输出。 最总跑分:4698.857421 细心的朋友可能会发现,这里的分数并不像新闻里面报道的9220分。这是为什么呢? 经过简单的分析coremark项目的代码,不难得出答案。原来,示例程序里面的coremark项目,只是用了HPM6750的一个CPU核,而HPM6750是有两个同样的CPU核的。 那么,双核同时运行CoreMark测试,分数会翻倍吗?会是官方公布的9220分吗?这里我们暂且保留悬念,后面的帖子中我们将进行双核CoreMark实验。 不同存储模式的CoreMark对比 前面的跑分结果是使用-t flash_xip生成的项目得到的,接下来我们尝试使用不同-t选项进行10轮测试: 可以看到,release参数的执行平均分数最高,单核达到了4701.68分。 观察generate_project命令的输出,可以发现不同-t参数,项目使用的链接脚本不同: 通过对比链接脚本的内容,我们可以知道,不同链接脚本使用的存储配置不同。上一篇帖子的最后,也有一个表格做了总结,这里再次贴出来: 调试版 发布版(更小) 程序代码 运行内存 debug release 片内SRAM 片内SRAM flash_xip flash_xip_release FLASH芯片 片内SRAM flash_sdram_xip flash_sdram_xip_release FLASH芯片 DRAM芯片 和其他芯片的CoreMark跑分对比 CoreMark跑分榜 CoreMark首页的Scores页面中,有一些已经测试过的CPU、MCU的跑分记录。 CoreMark跑分查询 我们可以在Processor Name Match框中输入STM32,点击Apply进行过滤。过滤出结果后,我们可以按照分数从高到底排序: 可以看到,STM32H745的跑分是3223.82分,STM32H743的跑分是2020.55分。相比HPM6750单个CPU核的4698.86分差的都比较多。 不过这里查询到的数据都比较老了,STM32H7系列产品也在不断更新。因此,我从STM官网上找来了关于STM32H743和STM32H745的CoreMark跑分,以及HPM6750官方公布跑分数据,对比如下:   STM32H743 STM32H745 HPM6750 处理器架构 ARM Cortex-M7 ARM Cortex-M7+M4 双32位RISC-V核 CPU最高频率(MHz) 480 480+240 816+816 CoreMark跑分(官方数据) 2424 3224 9220 参考连接 HPM6750EVKMINI用户手册(网盘资料夹中的文件,没有独立链接); HPM6750的CPU核心是晶心科技的D45,具体信息详见晶心D45介绍页:http://www.andestech.com/en/products-solutions/andescore-processors/riscv-d45/ STM32H743产品介绍页:https://www.st.com/zh/microcontrollers-microprocessors/stm32h743-753.html STM32H745产品介绍页:https://www.st.com/zh/microcontrollers-microprocessors/stm32h745-755.html CoreMark项目首页:https://www.eembc.org/coremark/

  • 发表了日志: 【先楫HPM6750测评】CoreMark跑分测试

  • 2022-05-08
  • 回复了主题帖: 放假一天,攒了4000!

    一下省了4000块

  • 回复了主题帖: 【先楫HPM6750EVKMINI测评】1#硬件介绍及开发环境搭建

    这个对标NXP的应该是i.MX RT系列

  • 发表了日志: 【先楫HPM6750测评】HPM SDK开发环境搭建和Hello World

  • 发表了主题帖: 【先楫HPM6750测评】HPM SDK开发环境搭建和Hello World

    【先楫HPM6750测评】HPM SDK开发环境搭建和Hello World 上篇帖子中,我们介绍了如何下载HPM6750开发所需的资料,包括开发板资料和SEGGER Embedded Studio安装包,以及如何申请Embedded Studio激活码。本篇将会介绍如何安装SEGGER Embedded Studio,如何使用HPM SDK脚本创建SEGGER Embedded Studio项目,以及如何在SEGGER Embedded Studio中对项目进行编译和调试。 安装Embedded Studio和FTDI驱动 安装SEGGER Embedded Studio 首先是SEGGER Embedded Studio的安装。双击打开Setup_EmbeddedStudio_RISCV_v622a_win_x64.exe文件,这个没什么难度,也基本上不会有问题,一路Next就好了。   激活SEGGER Embedded Studio 上篇中我们介绍了,通过在hpmicro专属的激活网页填入个人信息之后,将会收到激活码邮件。本节将会介绍,如何使用邮件中的激活码,激活Embedded Studio。 打开Embedded Studio,通过菜单Tools→License Manager打开授权管理器界面: 点击“Activate SEGGER Embedded Studio”,在弹出的激活界面中粘贴邮件中的激活码: 点“Install License”即可,关闭Embedded Studio,下次打开时即为已激活状态。   解压HPM SDK 上一篇帖子中,我们通过百度网盘下载的开发板资料中包含有sdk_env_0.9.0.zip文件: 这里,我们首先将这个文件解压开,放到一个路径没有空格和中文的目录,例如我这里解压到了D:\\BaiduNetdiskDownload目录,解压后可以看到里面有如下目录和文件: 安装FTDI驱动 在开始使用SEGGER Embedded Studio或者RT-Thread Studio对开发板进行设备调试之前,都需要确保本地PC上安装FTDI驱动。本节介绍,如何安装FTDI驱动。 sdk_env_v0.9.0.zip压缩包中,包含了FTDI驱动文件,具体路径为: 双击打开FTDI_InstallDriver.exe后,直接点击“下一步”,安装完成将会出现如下界面: 创建Hello World项目并进行编译和调试 使用generate_project命令创建项目 双击start_cmd.cmd脚本文件,将会打开一个命令行窗口,并显示如下内容: 这个脚本打开的命令行会设置一些环境变量,包括将generate_project.cmd所在目录加到PATH环境变量中。因此,我们可以在这个命令行窗口中使用generate_project命令。 接下来,查看通过generate_project的-h选项,我们查看generate_project命令支持哪些参数: 跳转到hpm_sdk\samples\hello_world目录后,执行generate_project -b hpm6750evkmini -t flash_xip命令创建hello_world项目: 打开hello_world目录后,可以看到新生成的目录hpm6750evkmini_build: 该目录中包含一个segger_embedded_studio目录,segger_embedded_studio目录中包含hello_world.emProject文件。该文件即为SEGGER Embedded Studio项目文件,双击即可使用SEGGER Embedded Studio打开hello_world项目: 使用Embedded Studio编译项目 使用Embedded Studio的Build→Build hello_world菜单,或者F7快捷键,即可编译项目: 编译成功后,将会看看到如下界面: 其中的,XPI0即为开发板上的8M闪存芯片的使用情况。 PS: 因为我们generat_project使用的-t选项值是flash_xip,因此这里使用了片外闪存;如果选用debug,则会下载到片内RAM; HPM6750有2MB片内SRAM,但是没有片内Flash;开发板搭载了一个8MB的闪存芯片,一个16MB的DRAM芯片; 使用Embedded Studio进行调试 调试前行的准备工作: 连接开发板到电脑 **需要注意:**开发板上有两个USB-Type C口,需要连接标号“PWR-DEBUG”的 连接成功,且FTDI驱动安装成功后,将会看到如下两个端口出现: 将BOOT拨码调到适当的位置 **需要注意:**经过测试发现,拨码的设置和generate_project的-t参数有一定关系; -t选项为带xip的,则拨码必须为00,否则无法正常调试; -t选项为debug或release,拨码最好为10或者01,否则复位后启动闪存程序会对当前调试造成干扰; 准备工作完成后,开始使用Embedded Studio进行调试: 可以看到Embedded Studio的调试界面的功能还是非常齐全的,左边一列是反汇编窗口,中间是源码窗口、输出窗口、调用栈窗口,右边是局部变量窗口和寄存器窗口。 没错,可以单步调试(Step Into、Step Over、Step Out)、断点调试。Embedded Studio整体界面风格和Code Blocks比较相似,相比于基于Eclipse开发的IDE,整体体验上非常流畅、丝滑。 使用Embedded Studio查看串口输出 首选需要在Segger Embedded Studio 中配置串口参数。 通过Tools→Terminal Emulator→Properties菜单,打开串口配置界面: 先修改Baud Rate为115200,然后修改Port为你实际的串口号(和设备管理器中看到的对应),再点“OK”确认。 设置完成后,通过Tools→Terminal Emulator→Terminal Emulator菜单打开中断模拟器子窗口,点击“Connect”按钮,连接串口设备。继续调试程序,将会看到hello world输出: 坑点总结 本篇的大部分内容,参考了开发板用户手册。经实操验证发现,手册上的大体操作流程时没什么问题的,但仍热存在容易出现问题的地方。总体来说,比较容易掉坑是——BOOT拨码设置和generate_project的-t选项。 实际上,我们在创建项目前最好需要了解如下信息: BOOT拨码对应的启动模式,参考开发板使用手册: 拨码状态 启动模式 说明 00 XPI NOR启动 从连接在XPI0/1 上的串行NOR FLASH 启动     01 串行启动UART0/USB-HID 从UART0/USB0 上启动 10 在系统编程(ISP) 从UART0/USB0 上烧写固件,OTP 11 保留模式 保留模式 generate_project的-t选项选择不同的值,编译后,内存使用统计图的显示也会不同(-t本身就是用于指定不同的存储设备配置的),经本人实验,发现-t选项的不同值的作用如下: 调试版 发布版(更小) 下载目标位置 程序运行内存 debug release 片内SRAM 片内SRAM flash_xip flash_xip_release FLASH芯片 片内SRAM flash_sdram_xip flash_sdram_xip_release FLASH芯片 DRAM芯片 generate_project -t选项和BOOT拨码的对应关系

  • 2022-05-07
  • 回复了主题帖: 先楫官方资料包:测评先楫HPM6750看过来

    nmg 发表于 2022-5-6 09:46 @full_stack   @arilink @太阳上的骑士 @xusiwei1236 @RCSN @littleshrimp 主楼帖的资料已经05.01 ...
    收到,Over  

  • 2022-05-01
  • 发表了主题帖: 【先楫HPM6750测评】简单开箱和资料下载

    去年年底,我就在网络上看到了关于HPM6750的相关新闻,当时记住了两条关键信息——RISC-V内核、主频高达800MHz。 因此,我在了解到eeworld上有HPM6750的试用活动后,立即报名了此次试用活动。 一段时间后,EEWorld的小编通知我中选了,得知这条消息的开心程度不亚于中了10块钱的彩票 ;-)。小编告诉我,此次试用活动的合作厂商先楫半导体增加了三个试用名额,也就是6个试用名额。很nice的厂商,不光芯片非常给力啊~ 打开小编发给我的试用名单帖子,看到了自己的id,确认中选了。我属于后续增加的3个中的一个,也挺幸运的,如果先楫没有增加3个名额的话,我也就与这次活动无缘了吧。哈哈,所以觉得这次如下还是挺幸运的,再次感谢先楫半导体,感谢EEWorld。 五一放假前,EEWorld工作人员已经将快递发出了,并且告知了我快递单号。 今天(5月1日)下午,我收到了快递到达驿站的短信。取回快递后,接下来就是大家喜闻乐见的——开箱环节了。 简单开箱 快递是灰色塑料袋包装,就不上图了。 拆开快递包装袋后,就是开发板的包装盒了: 整体非常小巧。 包装盒里面有静电袋包装的开发板、四个铜柱和螺母、一块红色防静电海绵,以及两根USB线。一根USB线是C公头到A公头用于连接PC和开发板,可以用于调试。另一根是C公头到A母头,可以用于连接开发板和U盘。 包装盒内物品合影: 拆开防静电袋后,就是我们今天的主角——HPM6750EVKMINI开发板了。开发板非常小巧,大小和一张银行卡相当(宽度和银行卡基本一致,长度比银行卡多7mm左右)。开发板正面: 开发板中间最大的黑色芯片就是——HPM6750。右上角有三个按键,红色的是复位键,另两个是用户按键。右边有两个USB Type-C口,其中靠近中间位置的标号“PWR-DEBUG”,是用于供电和调试用,靠近右下角的Type-C口,标号“USB0”,是单片机的HOST USB接口,可用于连接其他USB接口的设备,例如可以通过Type-C转Type-A母头线连接U盘。上下边缘各有一组两排的排针,可用于扩展其他外设。其他的一些接口和外设信息可以通过HPM6750EVKMINI用户手册和原理图进一步了解。 开发板反面: 开发板反面左上角可以看到的是RT-Thread的RW007 Wi-Fi模组,右边是Micro-SD卡槽。 好了,开箱完毕。 开发资料下载 HPM6750开发板资料下载 管管提供了HPM6750开发板资料的网盘链接: 百度网盘链接: https://pan.baidu.com/s/1vJDZWEBqnsosFNeedX6Nww 提取码: cmd5 下载下来之后,顶层目录里面有一个Readme.txt,里面描述了各个目录下都有哪些文件: BSDL report: 边界扫描描述报告 Doc (DS,RM,Errata):包含HPM6750用户手册,数据手册,情况说明和勘误表**(PS:这里有芯片的数据手册和用户手册,用户手册更详细一些)** EVK,EVKMINI design file:包含HPM6750EVK和HPM6750EVKMINI的硬件设计文件**(PS:这里面有开发板原理图)** EVK,EVKMINI USER GUIDE:包含HPM6750EVK和HPM6750EVKMINI使用手册 IBIS report:包含芯片IO BUFFER模型 Pakcage information:HPM6750封装描述 Rohs report:RoHS报告 SDK:HPM6750EVK环境(sdk_env),包含SDK,工具链即生成例程项目的脚本等。 开发板用户手册: 开发板原理图:   芯片手册: HPM6750芯片参数 翻开芯片数据手册,可以看到HPM6750 CPU最高运行频率有816MHz,两个CPU核心,真的可以说是地表最强单片机了,同时还支持很多常见外设: SEGGER Embedded Studio下载 除了开发板资料外,还需要下载SEGGER Embedded Studio。 管管也提供了社区的下载方式,在活动试用页面(http://bbs.eeworld.com.cn/elecplay/content/208),rar压缩包被拆分为14个分片文件; 感觉一个个下载太麻烦了,所以我选择了从官网下载。 官网下载链接是(481M):https://www.segger.com/downloads/embedded-studio/Setup_EmbeddedStudio_RISCV_v622a_win_x64.exe MD5校验和(可以在下载后进行校验,尤其是试用迅雷等三方加速工具一定要校验): 9fad67d1a80dcb3a6aa4941193918432 但是,由于segger.com是一个国外网站,下载速度比较慢,所以我用了迅雷下载(迅雷有云端加速所以比直接下载要快一些)。 我下载成功后,通过迅雷云盘进行了分享。 迅雷云盘链接:https://pan.xunlei.com/s/VN0zUSawa8pDU2Q7Myg50g5aA1 提取码:kp96 其他小伙伴可以用这个下载,比直接下载应该要快一点。 SEGGER Embedded Studio激活码获取 管管也向我们说明了,SEGGER Embedded Studio的激活码申请方式: https://license.segger.com/hpmicro.cgi 填入你的姓名、邮箱、MAC地址等信息,就可以收到激活码了: 可以看到这个链接是segger官方的链接。这里的激活码是定向授权HPM产品的(双方有合作),而不是一般的“激(po)活(jie)”(盗版方式),是合法合规的,大家可以放心使用。 这也是先楫半导体非常nice的地方,他们直接和SEGGER达成了合作,让开发者可以免费使用SEGGER Embedded Studio(包括商用,SEGGER原本就允许非商业性质使用他们的产品)。 SEGGER官网也提供了HPM专属的激活链接,只不过不太好找到,可以在这个页面找到:Embedded Studio: Licensing (segger.com) 填好申请网页一段时间之后,邮箱将会收到激活码邮件: 到这里,我们的开发准备工作已经全部完成了。下期预告——SEGGER Embedded Studio开发环境搭建。    

  • 发表了日志: 【先楫HPM6750测评】简单开箱和资料下载

  • 回复了主题帖: 先楫官方资料包:测评先楫HPM6750看过来

    迅雷云盘: 链接:https://pan.xunlei.com/s/VN0yG05xNkQSy7EF3RW5Ov-YA1 提取码:r7nr 复制这段内容后打开手机迅雷App,查看更方便

  • 回复了主题帖: 先楫官方资料包:测评先楫HPM6750看过来

    nmg 发表于 2022-5-1 10:50 这种口令加速下载,是会员特权吗?
    不是,迅雷前年年底加入了云盘功能,用户下载的文件可以通过云盘分享出去,可以加速别人下载,类似百度网盘的功能。

  • 回复了主题帖: 先楫官方资料包:测评先楫HPM6750看过来

    【迅雷口令#X77669584#】复制这句话,打开最新版迅雷,接下来就是见证奇迹的时刻!(2022年06月30日失效)

最近访客

< 1/1 >

统计信息

已有15人来访过

  • 芯积分:95
  • 好友:2
  • 主题:4
  • 回复:19
  • 课时:--
  • 资源:1

留言

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


现在还没有留言