ARM
博说医械研发
专注于新产品开发知识体系与体外诊断
展开
-
nRFgo Studio 和 Nrfjprog 无法找到JLinkARM.dll的解决方法
Segger在第一次安装的时候,会在注册表中添加安装路径的字段,nRF的两个软件就根据这两个注册表字段来寻找JLinkARM.dll。而当你卸载/更新Segger的时候,注册表的相关的字段是不会被修改的,所以如果你卸载了你第一个安装的Jlink版本,这两个软件就会报错,提示找不到相应的DLL。安装更新版本的Segger也是不可行的,毕竟它还是不会修改相关字段。所以,我们需要手工修改下面两个注册表项目到正确的安装路径:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SEGG转载 2021-08-18 22:27:50 · 1486 阅读 · 0 评论 -
Zephyr程序初探(5):thread程序
这次的程序使用了中断、thread、semaphore,按键被按下后GPIO的中断callback被执行,发送semaphore使检测按键的thread得以执行,然后判断长按或者短按发送相应semaphore让相应的thread执行,除输出信息外LED会根据短按或者长按来闪烁1或者2次。原创 2017-07-23 12:47:06 · 1371 阅读 · 0 评论 -
Zephyr程序初探(4):中断程序
之前分别尝试了LED、SENSOR、BLE程序,今天来试了下GPIO中断程序,也就是按键程序。源码位置:samples\basic\button,查看Makefile文件,默认开发板是nucleo_f103rb,执行make编译程序。因为我的是一个精简的STM32F103开发板,除了电源、时钟、LED、USB外无任何其它外设,只是把所有能够使用的GPIO全部通过排针的形式引出来了,原创 2017-07-23 12:43:07 · 1670 阅读 · 0 评论 -
Zephyr程序初探(3):sensor程序
使用sample中的例子把LED闪烁和BLE程序完成了,之前那两次对config等修改很少,且代码也基本未做更改,这次自己编写一个简单点的程序,根据手中的资源就开发一个6轴sensor的程序吧。(当时买开发板的时候要的是LIS3DSH芯片3轴加速度计,不知道怎么发来了MPU6050,刚收到货的时候没注意,开始使用才发现)在zephyr根目录创建了一个projectors目录,然后创原创 2017-07-23 12:36:36 · 1791 阅读 · 0 评论 -
Zephyr程序初探(2):BLE程序
手里有一块nRF52832的开发板,之前在试验了KEIL平台下的BLE工程是可以正常使用的,这几天在看Zephyr代码资料的时候注意到是支持nRF5这种自带bluetooth controler的,所以编译一个试试。进入sample\bluetooth\peripheral_hr目录后执行make BOARD=nrf52_pca10040编译完成后使用nRFgo Studio将原创 2017-07-23 12:24:41 · 3084 阅读 · 2 评论 -
Zephyr程序初探(1):LED程序及调试过程
编译环境搭建好后开始尝试我的第一个Zephyr程序编译和运行,手里有一块stm32f103c8t的开发板,Zephyr支持nucleo_f103rb开发板,所以以此来编译我的第一个程序。在Zephyr根目录执行source zephyr-env.sh例子samples\basic\blinky是一个LED闪烁的程序,先修改boards\arm\nucleo_f103rb\boa原创 2017-07-23 11:33:54 · 4259 阅读 · 2 评论 -
Flash容量设置错误导致的No Algorithm found for: 08020000H – 08024FD3H
Keil程序添加新代码后下载到板子上无法运行,download时有如下提示信息No Algorithm found for: 08020000H - 08024FD3HPartial Erase Done (areas with no algorithms skipped!)No Algorithm found for: 08020000H - 08024FD3HPartial Prog原创 2016-09-23 22:12:00 · 17362 阅读 · 2 评论 -
Keil编译生成二进制bin文件
Keil的工程默认设置编译时只生成axf和hex文件,不过我们可以自己修改设置生成bin文件。具体操作方法:工程的target options->User->After Build/Rebuild中勾选Run #1并添加C:\Keil\ARM\ARMCC\bin\fromelf.exe --bin --output=myprog.bin myprog.axf以上的工具地址和工程名都原创 2016-09-06 21:09:42 · 3601 阅读 · 0 评论 -
Keil中的环境变量和使用
原文链接(Keil官方):Key Sequence for Tool ParametersUse Key Sequences to pass arguments from µVision to external user programs. Key Sequences are combinations of aKey Code and a File Code. Key sequence转载 2016-08-25 21:45:33 · 10480 阅读 · 0 评论 -
Simplicity Studio通过makefile.targets实现post-build
在开发产品的过程中,对于生成firmware文件通常会加入一些checksum或者flag,避免用户更新了错误的文件导致无法开机等严重后果。有时是编写一个图形界面的程序,然后手动运行修改firmware文件,但是这样做比较繁琐,每次测试时都需要手动操作一次,其实很多编译工具都支持post-build的功能,可以在build之后自动执行一些命令来达到自动添加checksum和flag的目的。原创 2016-08-25 21:35:57 · 2352 阅读 · 0 评论 -
Wince5.0下如何将Public和Private下的代码移植到BSP下
作者:gsymichael 有时候在调试驱动或是学习驱动的过程发现源码在Public下,而这部分又不能乱动。同时对于Private下的代码更是如此了。如果能将这部分代码移植到自己的BSP下岂不是可以随意加入调试信息从而更好的掌握代码的实现机制,也可以自己加些功能什么的也不用担心Private或是Public下的内容被改掉。 那么就来看看如何做吧。首先看如何把Public下的驱动移转载 2010-01-15 16:25:00 · 1089 阅读 · 0 评论 -
ARM ADS中的AXD 调试经验集锦
1,怎么设置AXD连接的Target。在菜单的Configure Target…选项中能设置。一般选择MutiIce或ARMUL两种。ARMUL是一种ARM的模拟器。一般的算法或一些无需和硬件中断等设备打交道的程式都能通过这个进行调试。使用上非常简单。我们一般上板子进行调试都是通过MutiICE来进行。在刚刚安装了系统的时候,菜单中没有MutiICE,需要我们手动添加:点击ADD按钮,然后在弹出的转载 2009-11-19 09:25:00 · 1692 阅读 · 2 评论 -
STM32F401 SDIO HAL driver初始化SD卡
STM32F4xx的HAL部分已经提供了SD的driver,初始化时的IO PIN等放在HAL_SD_MspInit。void HAL_SD_MspInit(SD_HandleTypeDef *hsd){ GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABL原创 2016-07-18 22:04:01 · 6657 阅读 · 0 评论 -
ADS中Printf打印变量的实现。
ADS的程序一般都是使用ARM芯片的UART进行串口通信输出调试信息,PC编程中Printf无法直接使用,但是可以自己写一个函数用来实现相同的功能。1、包含头文件:#include "stdarg.h" 2、实现UART打印字符串的函数:void Uart_SendByte(char data){ ........}void Uart_SendS原创 2010-04-07 09:45:00 · 3155 阅读 · 5 评论 -
ADS创建自己的Project模板
在ADS的使用过程中创建自己Project模板的最大好处是以每次建新工程的时候直接选择这个模板就可以不再重新编写那些基本的初始化汇编文件以及一些C语言代码,也不用使用从其它工程复制代码或者文件。上体操作流程如下:1、如上图,建立好一个最基本的工程(我的例子是My Project Form),写好初始化汇编代码,如:startup.s初始化堆栈和外部RAM等,另外还可以根据需要编写一些U原创 2010-03-11 14:58:00 · 3541 阅读 · 0 评论 -
如何在ADS调试中使用中断
大家都知道ARM9产生中断的时候PC会自动跳转到0x18地址处执行中断处理代码,但是当FLASH等启动介质中没有预烧录代码会怎么样呢?ARM复位时从启动介质获取的代码为全F或者全0,而如果ADS调试将代码下载到外部RAM里边就会导致0x18地址没有中断处理代码,发生中断当然也就没有办法执行了,其实有几种处理方法:1、使用ADS的分散加载机制。在下载映像时将带中断处理的代码下载到0地址开始的地方原创 2009-12-18 09:31:00 · 1992 阅读 · 0 评论