自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LOTOOHE的博客

嵌入式开发,动态加载

  • 博客(58)
  • 资源 (7)
  • 收藏
  • 关注

原创 zynq pl读写ddr 实现vga高清显示

其实通过vga显示官方有一个ip核可以用,但是我不是主要为了实现vga显示,而是为了实现如何从ps端向pl端进行大量的数据传送,经过了间断性的不断代码测试,编写,我最终实现了。下面简单说下我是怎样实现的。目的:1.实现pl读取ddr内的数据将数据转换成vga的数据流显示到屏幕上,显示大小640*4802.ps端向ddr内写入像素值,pl端能够同步转换并显示出来。3.利用axi总线实

2017-12-02 10:17:21 10491 17

原创 (1)自写zrtos,实现多任务,多优先级,支持消息邮箱,信号量等的简易操作系统

该系统是我在阅读了ucos后,并且借鉴了其它操作系统后实现的,完成了一些基础的工作,可以拿过来学习,也可以进行简单的应用。声明:仅供学习!要自写一个操作系统,我们首先要实现的就是任务切换,再其次是任务调度(高优先级先执行,同优先级时间片分割执行),然后再是消息邮箱,信号量,互斥量等等。下面我们来看看任务切换的实现,这部分的代码只能由汇编语言来完成,在handler.s中有任务切换的具体

2016-08-22 08:42:53 1365

原创 MKRTOS MCU上的微内核操作系统

MKRTOS(Micro-Kernel Real-Time Operating System) 是首款在开源的支持MCU的微内核操作系统。未来还将在MCU上支持虚拟化!!下载地址:https://gitee.com/IsYourGod/mkrtos-realMKRTOS被设计为一个极其精简的内核,内核只包含thread、task、内存管理等功能,其它所有功能都被实现在用户态,同时兼容 Posix 标准的操作系统,使其完全适用于各类嵌入式场合。​

2023-11-21 11:34:48 525

原创 fiasco mapdb阅读

映射的物理地址作为mapping数组的索引,每一层的索引位置由phys_addr>>page_shift确定。1)插入与删除效率效率O(1)。2)查找效率O(n)。

2022-10-27 14:39:01 180 1

原创 ELF 位置无关代码

ELF Header:Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00Class: ELF32Data: 2’s complement, little endianVersion: 1 (current)OS/ABI:

2021-03-20 11:57:21 322

原创 nuc980使用教程--3--uboot lan8720 phy 配置

uboot配置:可以增加随机mac地址的功能,不增加则需要在uboot中设置mac地址上面如果使用了EMAC1,就不选EMAC0,PHY地址如果硬件未做设置就设置0,可以参考我的电路箭头所指的R51与C68一定要加,不然会出现只能发送不能接收的情况,猜测可能是电路内部采样的问题。编译与设置重新编译,然后烧写uboot,就可以,然后还需要配置uboot的网络参数:setenv ipaddr 192.168.1.30setenv serverip 192.168.1.1saveenv

2021-03-02 19:10:22 1567

原创 nuc980使用教程--2--spi nor flash(W25Q256)启动

添加sf支持命令:修改配置文件:修改文件:include/configs/nuc980_evb.h配置系统使用SPIFLASH,并且将ENV保存在SPI flash中#define CONFIG_SYS_USE_SPIFLASH#define CONFIG_SYS_USE_NANDFLASH/*#define CONFIG_ENV_IS_IN_NAND*/#define CONFIG_ENV_IS_IN_SPI_FLASH /*#define CONFIG_ENV_IS_IN_MMC */

2021-03-02 18:58:40 1066

原创 nuc980使用教程--1--资料下载

nuc980使用教程--1--资料下载NUC980 资料下载与官网虚拟机使用VM安装NUC980 资料下载与官网虚拟机使用官方网址:新塘官网官方自带虚拟机、Linux4.4bsp下载与使用手册下载地址:VM安装VM虚拟机的安装请自行百度,虚拟机安装完成后,用户密码默认为user,使用教程可以参考官网给出的虚拟机使用文档UM_NUC980_NUC970_Linux_environment_on_VMware_EN_Rev1.00.pdf:编译的根目录为:nuc970_buildroot_m

2021-03-02 18:41:57 866

原创 开源Modbus 协议库---XTinyModbus

自写,支持主机,从机,下载地址:https://github.com/lotoohe-space/XTinyModbus加入qq群讨论:419833232也可到私人博客下载:http://www.iotscitech.cn/post/12XTinyModbus===A small embedded Modbus protocol stack, written in C langu...

2020-04-03 11:41:47 2264

原创 51单片机指令模拟器

MCS-51单片机指令模拟器,除了DA指令外,其它指令都可以模拟。实现了254条指令的模拟,并进行测试,但是测试还不够完整,只对关键指令完成测试,其它指令测试均人为检查过,DA指令还未实现,后面会实现请到我的github中,或者我的私人博客中下载,地址:http://www.iotscitech.cn/post/11https://github.com/lotoohe-space...

2020-02-23 15:50:45 3312 1

原创 自写malloc函数的实现

转向自己的博客malloc函数的实现

2019-11-28 19:55:00 690

原创 动态加载新问题

中断问题:中断不知道何时回来,中断来时,r9的值可能处于不同的变量域,如果A程序中注册了中断号48,这个时候A程序调用了B程序的代码,那么变量域将切换到B程序,这时如果中断48号来临,那么将会出现变量域为B程序, 但是中断函数中缺要使用A程序变量域中的变量,必然导致死机。该问题解决办法比较麻烦,可以采用在注册中断函数时,在中间插入中断跳转函数,类似于函数重定向,中断来临时先执行中断跳转函数...

2019-11-04 14:36:24 193

原创 重定向--reloc连接参数

2019-11-04 09:22:38 493

原创 Zigbee 应用层协议自定义

下传://设备数量 [设备索引子设备索引设备类型设备类型值] [设备索引子设备索引设备类型设备类型值]//发送给设备的包说明//类型 长度 值//type len value//dev_index 设备索引//dev_sub_index 子设备索引//dev_t...

2019-11-01 11:09:59 972

原创 zigbee 局域网配对以及设备的管理

配对流程:协调器通过串口等方式设置进入配对模式,在配对模式下,PAN ID设置为0xffff(让协调器自己决定创建的网络),然后1s发送一次广播包,广播包中包含了该协调器的MAC地址的低16bit,该低16bit将作为配对完成后的PAN ID。上电时协调器判断当前处于配对模式还是正常模式,如果处于正常模式则PAN ID设置为MAC地址低16位,如果位配对模式则设置PAN ID为0xffff...

2019-10-28 20:37:38 2621

转载 ZIGBEE获取本设备及父设备的IEEE64地址和短地址

第一种方法,利用NLME.h里面定义的专门API获取设备自身IEEE地址extern byte *NLME_GetExtAddr( void );获取设备自身网络地址extern uint16 NLME_GetShortAddr( void );获取父设备网络地址 extern uint16 NLME_GetCoordShortAddr( void );获取父设备...

2019-10-15 13:02:32 629

转载 ZSTACK协调器掉电重新组网无法加入网络的解决

我用的是TI ZIGBEE2007的协议栈,由于之前默认对协调器编译NV_INIT和NV_RESTORE两个选项而其他节点只有NV_INIT这个选项所以每次我用协调器重新上电,所有的节点都是重新入网而且协调器并不会擦出以前的节点,而协调器是有网络节点上限的,所以基本上重新加入几次就满了,然后就不能继续加入了,关于这个问题,首先看看编译项 NV_INIT和NV_RESTORE的区别:(此...

2019-10-15 12:47:01 710 1

原创 z-stack修改PAN ID(组网地址)

一、修改PAN ID在之前的实验中,我一直纠结于pan id的设置,有2种方法:方法1.pan_id=0x1122;//你想要的IDzb_WriteConfiguration(ZCD_NV_PANID, sizeof(uint16),&pan_id) ;zb_SystemReset();方法2:pan_id = 0x1122; _NIB.nwkPanId = p...

2019-10-15 12:45:15 1084

转载 zstack 组网解析

转载:https://blog.csdn.net/chenxinqiang2005/article/details/38536879

2019-10-15 12:33:03 919

原创 Android xml full screen setting

<style name="AppTheme.FullScreen"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowFullscreen"&...

2019-09-20 20:55:58 216

原创 如何利用mqtt服务器实现多设备,多用户的管理。

大家都知道mqtt协议最基本的思想就是发布订阅,也就是一个设备发布多个设备订阅。设备发布者发布一个主题,其它设备通过订阅可以获得主题发布者发送的消息。网关作为发布者发布两个主题:通配:dev/用户ID/公司ID/项目ID/设备MAC/#主题一:dev/用户ID/公司ID/项目ID/设备MAC/0该主题为设备订阅的主题,用来发送设备信息给用户,只能为指定设备发布主题二:dev/用户ID/...

2019-07-29 16:32:08 7586

原创 LAN8720 100M 掉线问题解决

最近在做一块板子的时候,使用的phy芯片为LAN8720,在使用的发现老是ping一段时间后自动掉线,从软件问题一直查找,最后发现是LAN8720掉线了,且wang网口绿灯一直常亮,拔线网线也是一样,黄灯不闪烁,且phy发热严重。问题出在本来网口电源是下面这样,但是在焊接时没有找到磁珠,就用0欧电阻代替,结果电源干扰大不稳定,换上磁珠后ping未出现网口掉线现象,发热现象明显减少。...

2019-04-10 17:20:11 10122 1

原创 STM32 晶振不起振,180Hmz跑飞解决办法

昨天在调试自己做的STM32F429IGT6核心板的时候,发现使用外部25M晶振时一直不能起振,或者所有时起振但是不稳地,程序中非常容易跑飞,换了一个8M的晶振,发现没有问题。调了一下午,最后发现是因为VCAP1,VCAP2两个引脚接的对地电容太小了,这两个管脚接电容是为了保证内部的主调压器工作稳定,如果太小会导致内部工作不稳定,程序容易跑飞等问题。我焊接的是1uF的,官方推荐是2.2uF,换上后...

2019-03-01 15:08:00 1659

原创 共享库与动态加载的实现

下面是对共享库与动态加载在操作系统中自己实现的一些思路,最终目的实现一个不带mmu单片机上的:具体实现如下:目前已经实现单个的共享库加载到内存的任何位置,多个共享库加载的思路如下:1)运行一个程序或者共享库。2)在程序头表中查找INTERP项,如果存在找到解释器,并运行(这里的解释器并不是去解释代码运行,而是用来重定向代码的,并不会影响代码的运行效率)3)重定向代码4)完成目前微内核需要实现如下的...

2018-06-14 21:27:48 1297

原创 elf .got .plt 表以及共享库加载原理,在没有mmu的单片机上实现共享库

    之前研究了在没有mmu的单片机上实现动态加载,因为之前使用的是keil编译工具,它使用的是arm公司自己开发的编译器,很多地方不好研究。其实使用gcc也是可以开发Stm32的,最近发现一个开发工具叫tureStudio,是一个利用Eclipse与gcc组合起来的开发工具,特点是使用了gcc编译器,资料多呀,特别是对于elf文件格式的与linux下基本一模一样。下面就总结一下最近研究到的东西...

2018-06-12 00:54:07 1400 1

原创 动态加载————arm 中bl指令,bl.w指令的生成代码

下面一段代码生成bl指令,在研究动态加载时,发现bl.w指令用的非常多,其实就是一个bl长跳转指令,目前动态加载以及能够实现简单的多个模块合并加载。下面就是转换的代码。u32 encoded_instruction_blw(s32 offset) { u32 bl_instruction = 0x00; u16 low=0, high=0; high |= 0x1e &lt;&lt; 11; lo...

2018-05-29 13:39:21 4747

原创 在没有MMU功能的单片机上实现动态应用程序加载

在没有mmu的cpu上实现动态加载的功能。mmu:拥有虚拟地址映射的功能。在没有mmu的设备上实现动态加载是可能的,两种方法。1)我们知道局部变量占用的是堆栈的内存,全局变量和静态变量占用的是静态存储区,而静态存储区的地址是一个绝对的地址。所以要想实现动态模块的加载,我们不能够去使用全局变量和静态变量,解决方案是通过内存申请来解决。还有一个问题就是在使用函数指针的时候,其实也是一个绝对的地址,那我...

2018-05-07 20:36:50 4359 6

转载 解决“运行arm-linux-gcc命令,提示No such file or directory”的问题

今天在ubuntu14.04上安装arm的交叉编译器arm-linux-gcc,环境变量配置好以后,运行arm-linux-gcc命令,总提示No such file or directory。然后去arm-linux-gcc所在的目录下,发现不缺少任何文件。而且环境变量配置也是正确的(环境变量很easy,只要配置个path路径就行),因为arm-是可以补全的。之后又在网上下载了几个版本,甚至最新

2017-09-21 16:35:38 3729 1

转载 glassfish4.1 简单操作

n目录运行asadmin,FreeBSD下运行./asadmin,进入GlassFish控制台,Windows 和 FreeBSD 的 asadmin 的进入只是形式的不同,本质没区别。 # 创建一个domain (ZIP 解压开,已经默认有一个 domain1),另:在修改了管理员名称后会提示设置密码,否则会略过设置密码。create-domain domai

2017-07-23 15:21:31 757

原创 spring jquery Mobile 页面跳转后浏览器url未改变&&javaScript代码刷新后才能执行的问题解决

最近在做一个远程控制的项目的时候,使用了JqueryMoile,在其中发现一个问题:当我在使用如下标签是发现:设备列表跳转之后发现浏览器的url 没有发生改变。只有又发现,我在一个网页内写的javascript代码第一次加载网页的时候,JavaScript代码也没有执行。 反正中间耗费了很多时间去定位问题的所在。也是由于刚接触此类技术,并不是很精。后来想想还是追

2017-07-14 12:48:28 973

转载 JavaScript如何获得input元素value值

转载地址:http://aquarius-zf.iteye.com/blog/605144在页面中我们最常见的页面元素就是input了,但是我们如何用JavaScript得到网页input中输入的value值呢,其实很简单,方法也不止一种,据我总结比较常用的就是下面的两种方法,闲话不多说了,下面那就来看看我说的方法吧: 方法一、 Java代码    

2017-07-13 18:00:27 992

转载 JavaScript JSON 简易教程

JavaScript JSON JSON 是用于存储和传输数据的格式。JSON 通常用于服务端向网页传递数据 。 什么是 JSON?JSON 英文全称 JavaScript ObjectNotationJSON 是一种轻量级的数据交换格式。JSON是独立的语言 * JSON 易于理解。* JSON 使用 JavaScript 语法,但是 JS

2017-07-13 17:53:31 639

转载 获取C#各种运行目录

// 获取程序的基目录。 System.AppDomain.CurrentDomain.BaseDirectory// 获取模块的完整路径。 System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 System.Environment.Curr

2017-07-06 16:27:03 1733

转载 Zstack协议栈中CC2530协调器掉电重启后重新加入之前网络的方法

协调器断电重启之后重新加入之前网络;在 workspace 中选中 CoordinatorEB,在Project -> Options -> c/c++ Compiler 中选中对话框 Preproce ,在Define symbols 中添加 NV_RESTORE;后编译下载;测试:一个协调器,一个路由器,一个终端,路由器和终端定时给协调器发送信息,协调器收到数据后串口打印出来,设备上电(不分先

2017-06-23 14:32:39 2533

转载 C#中HashTable的用法

命名空间System.Collections 名称哈希表(Hashtable) 描述用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对. 二,哈希表的

2017-06-06 09:19:40 464

原创 w5500+stm32+cc2530的家庭网关小板

好久没有写过博客了,之前有一个项目就是与家电控制相关的,尝试了多种方案,项目结束了,自己还是在不断的更新。板子上主要的硬件包括:w5500 stm32 cc2530 sd卡 ch340g于是又 吧板子重新画了一次,这次的板子显得更加的完美,基本硬件调试通过,网络稳定。板子焊接的很丑,就不要笑我了上两张图:部分的原理图:USB转串口SD卡:

2017-06-04 15:38:57 2875

转载 VxWorks操作系统shell命令与调试方法总结

VxWorks下的调试手段主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤、思路。1         Tornado的调试工具嵌入式实时操作系统VxWorks和集成开发环境Tornado的组成结构如下图1。分为主机和目标机系统。图1 集成开发环境结构图在Tornado下,调试相关操作在Debug菜单下,包括:

2017-03-09 10:23:21 3173 1

转载 USB设备类型代码以及详细说明

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]说明:由于链接是相对路径,下载和点击会不正常,如果需要下载文中提到的文档,请去官方网站相关地址下载以下是USB所有支持的设备类型代码.地址:http://www.usb.org/developers/defined_classUSB Class Codes                    

2017-03-03 10:53:19 1767

转载 ZYNQ-7000开发中断:私有定时器中断

上篇文章实现了了PS接受来自PL的中断,本片文章将在ZYNQ的纯PS里实现私有定时器中断。每个一秒中断一次,在中断函数里计数加1,通过串口打印输出。*本文所使用的开发板是Miz702(兼容zedboard) PC 开发环境版本:Vivado 2015.2 Xilinx SDK 2015.2*中断原理中断对于保证任务的实时性非常必要,在ZYNQ里集成了中断控制器GIC(Generic

2017-02-10 16:29:22 2359

转载 AMP(非对称多进程处理模式)和Zynq SoC的OCM

在上一篇博客中我们了解了Zynq SoC的OCM(片上存储器) ,利用它可以实现在AMP模式下内部处理器内核之间的通信。现在我们将写一些程序代码将这个设备(OCM)利用起来。在这个演示示例中我们将使用UART接口实现CPU0 与上位机(笔记本)之间的通信连接,我们将从上位机发送8位ASCII码值到Zynq SoC的串口,一旦被接收,这个8位的ASCII码值将被传输到指定的OCM内存地址,并且这

2017-02-10 15:30:20 4025 4

ht16c23.rar

HT16C23段码屏,驱动,已经封装好,只需要移植iic接口以及延时函数,可以根据com和seg来设置点亮那个段

2019-11-28

stm32f103zet6

stm32f103zet6程序

2019-03-02

zynq pl读写ddr 实现vga高清显示(2)

另一个好像传错了,这是主要的ip,sdk的代码在博客中已经给出,https://blog.csdn.net/LOTOOHE/article/details/78692798

2018-11-29

zynq pl读写ddr 实现vga高清显示

如题:详细链接:https://blog.csdn.net/LOTOOHE/article/details/78692798

2018-11-29

evm6678l;+ftp

c6678+ftp;evm6678l;ftp;dsp6000

2016-09-27

zrtos操作系统源码,stm32可以直接使用

该系统是我在阅读了ucos后,并且借鉴了其它操作系统后实现的,完成了一些基础的工作,可以拿过来学习,也可以进行简单的应用。 声明:仅供学习! 要自写一个操作系统,我们首先要实现的就是任务切换,再其次是任务调度(高优先级先执行,同优先级时间片分割执行),然后再是消息邮箱,信号量,互斥量等等。 下面我们来看看任务切换的实现,这部分的代码只能由汇编语言来完成,在handler.s中有任务切换的具体代码: 我们的任务板是stm32,stm32是基于cortex-m3内核的,所以在写这个系统的时候很多参照了cortex-m3内核的文档,其中包括了pendsv中断向量,与中断压栈以及堆栈指针等方面。 使用参考:http://blog.csdn.net/lotoohe/article/details/52273741

2016-08-22

bmp转rgb565

可以将bmp转换为rgb565.。

2012-08-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除