嵌入式开发
小小路边草
喜欢尝试各种编程语言,喜欢研究各种技术
展开
-
Java程序打包为exe可执行文件
这里要用到的是exe4j这个工具,可以在浏览器上直接搜索这个文件名即可找到下载地址,下载安装后,确保jdk环境配置好。以netbeans的java应用打包为例,我们先编写得到一个简单地控制台程序,然后用exe4j打包为.exe可执行文件。一:先使用netbeans编译好工程,并确保程序能正常运行。在netbeans项目的属性页面,依次找到 【构建】-> 【打包】,勾选【编译后侯建】JAR(B)、复制相关库(L)确定,重新构建整个工程,确定dist目录下有生成jar包:二:原创 2021-07-20 10:54:37 · 499 阅读 · 0 评论 -
24位bmp位图转为16位bmp位图方法,不失真
在嵌入式产品中,优化存储空间的限制,一般图片都需要压缩处理(MCU资源限,jpg等压缩算法均不能实现),可以将bmp或者jpg转换为16位bmp位图的方式,大多数情况下,失真度还是比较小的,肉眼基本分辨不出来。转换不能采用简单地抛弃低位数据的方法,那样会导致图片严重的失真,这里找了一个java的实现方法: public static void image2RGB565Bmp(String filePath, String saveFileName) throws IOException原创 2021-04-08 16:11:12 · 2099 阅读 · 3 评论 -
函数指针调用与Thumb代码的问题
在验证一个RAM中执行函数时,遇到了MCU进入Hardfault错误的问题。代码载入内存地址0x20003000之后,使用函数指针的方式跳转:typedef int (*func_call)(int, char **);void call_ram_func(void){ uint32_t *fun_base; func_call func; int argc = 2; char *argv[] = {""}; fun_base = (uint32_原创 2021-03-06 21:36:10 · 501 阅读 · 0 评论 -
keil创建无启动文件及自定义.sct文件的工程
需求背景:主程序常驻ROM,子程序动态加载到RAM中运行。子程序由主程序动态加载到指定RAM位置执行,子程序可以调用主程序的公共接口(函数),子程序执行完成后返回主程序。原创 2021-03-06 21:06:59 · 2768 阅读 · 0 评论 -
加速度传感器(STK8321)的初始化
阅读STK8321的数据手册,我们知道STK8321是一颗具有 ±2g/±4g/±8g的3轴线性加速度传感器,它支持i²c和spi接口通信,具有极低的电流消耗(微安级),同时具有32级深度的FIFO,因此广泛应用与各类电子设备。我这里将其应用在智能手环上,主控MCU采用NRF52832,通过SPI读取3轴加速度数据,进行常规的步行统计、方向识别等。根据使用场景要求,需要把STK8321设置在低功耗模式,采用等时采样的FIFO方式,并通过中断信号,通知主芯片NRF52832读取FIFO缓存。软件流程如下:原创 2020-11-26 14:38:20 · 5464 阅读 · 12 评论 -
华大HC32F005 Systick问题
在项目中使用了HC32F005这颗IC,遇到一个新版本DDL库的问题,现象是使能了BGR模块后,系统systick中断停止了。int Adc_init(void){ if (Ok != Sysctrl_SetPeripheralGate(SysctrlPeripheralAdcBgr, TRUE)) // 内建电压模块时钟使能 { return Error; } Sysctrl_SetPeripheralGate(SysctrlPeriphe原创 2020-11-22 18:58:18 · 2931 阅读 · 0 评论 -
8763BF HCI命令交互流程简析
SDK版本: Bee2_SDK_WRISTBAND_V3.0.0(19619)HCI命令通过UART接口传输,任务中发送,中断接收->任务中解析处理,关键流程和函数定义:1,串口初始化DataTrans_Driver_UART_Init()注册中断处理函数DataTrans_UARTIntrHandler2,任务体创建bbpro_hci_receive_task和void bbpro_hci_send_task(1) os_task_create(&bbpro_hci_send原创 2020-09-19 17:50:47 · 465 阅读 · 2 评论 -
STM32H743关于ADC与DMA不工作问题
这几天在调试ADC与DMA时,发现2个问题,这里记录以下,避免后面再入坑。1,ADC采集完成后能正确产生DMA请求,但是DMA中断后进入报错流程,具体错误为DMA传输失败,最后还是在网上找到的同样的问题,keil把RAM的基地址设置为0x2000000,程序在编译的时候,内存变量包括传入DMA的buffer都从这个基地址往后安排,单DMA访问不了这个区域的内存空间,从而产生了错误,解决的最快办法就是修改keil的RAM配置,或者用__attribute__属性修改DMA buffer到一个DMA可以访问的原创 2020-05-25 11:09:07 · 3849 阅读 · 1 评论 -
Nordic BLE SoftDevice和SDK升级
不得不感叹一下,不知不觉,时光飞逝,3年已过。当初在接触noridc 52832时,使用的SDK是11.0,今年已经到了15.0,为了对应用最新的nRF82840做前期技术铺垫,特意把SDK进行升级.升级包括SDK和SoftDevice两个部分,SDK和SoftDevice是需要对应的才能使用,具体信息可以参考http://infocenter.nordicsemi.com/index.j...原创 2018-07-07 12:46:21 · 979 阅读 · 0 评论 -
关于The connected J-Link is defective,Proper operation cannot be guaranteed......的解决办法
之前在使用V5.17的KEIL和V4.90的J-Link配合的不错,可以正常工作,后来讲KEIL升级至V5.25之后,在启动调试时,每次都会弹出“The connected J-Link is defective,Proper operation cannot be guaranteed……”的提示框,很不爽,最要命的是调试中单步执行只能走几步就断开,不能停止MCU,单步之后再全速后,J-Link...原创 2018-07-07 00:11:28 · 24272 阅读 · 7 评论 -
GDB compile configure
for debug configure:./configure –enable-debugger –enable-disasmfor gdb debug configure:./configure –prefix=/opt/bochs/gdbstub –with-x11 –enable-gdb-stub –enable-disam –enable-pci –enable-pcidev - -原创 2017-03-30 16:53:25 · 774 阅读 · 0 评论 -
MinGW as 与 Linux as的一些微小差异
.globl cpuidfunc .def .type cpuidfunc, @function; .enddef ELF and PE/COFF are different platforms; they have different assembler syntaxes. Just because they both use the GNU assembler and th转载 2017-03-30 16:45:54 · 495 阅读 · 0 评论 -
Keil-原文件类型不明确导致编译出错的解决方法
在使用Keil编译工程文件时,偶尔出现以下提示:FCARM - Output Name not specified, please check 'Options for Target - Utilities'按照提示到指定地方去找,并没有发现什么东西,其实这可能是由于源文件的类型不被编译器识别,这时候就会报此类信息。例如下面项目目录结构包含了两个文件,一个.c文件一个.s文件: 选中start_e原创 2016-06-13 17:28:29 · 3058 阅读 · 1 评论 -
Keil 离线安装packet方法
Keil用的不是很多,在使用packet installer 下载时,出现故障。 故此,只有通过http://www.keil.com/dd2/Pack/直接下载离线包安装。 需要注意的是,版本要对应,否则也安装不了。原创 2016-06-08 17:32:02 · 7906 阅读 · 0 评论 -
ARM9开发之实现多任务操作系统的基本技术
/** * I has illustrated a way to using exception handling mechanism to implement * a operating system(multi task scheduler) on ARMv4 architecture in this article. * 2015.8.7 */ 本文介绍了再ARMv原创 2015-08-07 16:38:24 · 2956 阅读 · 0 评论 -
嵌入式第一天(linux下minicom连接开发板)
本人使用linux,而天嵌科技的开发板的开发工具全都是基于windows的,本人又不想重回windows,所以板子买来之后一直搁置了好几个月,基于各种原因,今天特意花了一点时间来研究linux下如何连接开发板。条件:宿主机T400,linux2.6,usb2.0接口,无串口,开发板TQ2400,支持USB主/从接口,串口,RJ45网络接口。步骤:(由于计算机不带原创 2014-06-29 15:51:41 · 2866 阅读 · 0 评论 -
ARM9开发之学习过程总结
时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。这里先将我学习ARM中的整个过程总结一下,希望对刚接触的朋友有个提示作用,也希望高手不吝赐教,欢迎拍砖^_^。需要说明的是,这仅仅说是ARM,其间涉及到别的知识也是需要很多时间去学习的,这里我就不列举了。开发板的配套光盘有很多资料文档,在学习之前,大概浏览一下是非常不错的,强烈建议,特别是S3原创 2015-07-30 13:49:52 · 4900 阅读 · 4 评论