- 博客(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
10956
10

原创 (1)自写zrtos,实现多任务,多优先级,支持消息邮箱,信号量等的简易操作系统
该系统是我在阅读了ucos后,并且借鉴了其它操作系统后实现的,完成了一些基础的工作,可以拿过来学习,也可以进行简单的应用。声明:仅供学习!要自写一个操作系统,我们首先要实现的就是任务切换,再其次是任务调度(高优先级先执行,同优先级时间片分割执行),然后再是消息邮箱,信号量,互斥量等等。下面我们来看看任务切换的实现,这部分的代码只能由汇编语言来完成,在handler.s中有任务切换的具体
2016-08-22 08:42:53
1439
原创 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
818
原创 fiasco mapdb阅读
映射的物理地址作为mapping数组的索引,每一层的索引位置由phys_addr>>page_shift确定。1)插入与删除效率效率O(1)。2)查找效率O(n)。
2022-10-27 14:39:01
249
原创 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
413
原创 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
1787
原创 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
1325
原创 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
1017
原创 开源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
2664
原创 51单片机指令模拟器
MCS-51单片机指令模拟器,除了DA指令外,其它指令都可以模拟。实现了254条指令的模拟,并进行测试,但是测试还不够完整,只对关键指令完成测试,其它指令测试均人为检查过,DA指令还未实现,后面会实现请到我的github中,或者我的私人博客中下载,地址:http://www.iotscitech.cn/post/11https://github.com/lotoohe-space...
2020-02-23 15:50:45
3822
1
原创 动态加载新问题
中断问题:中断不知道何时回来,中断来时,r9的值可能处于不同的变量域,如果A程序中注册了中断号48,这个时候A程序调用了B程序的代码,那么变量域将切换到B程序,这时如果中断48号来临,那么将会出现变量域为B程序, 但是中断函数中缺要使用A程序变量域中的变量,必然导致死机。该问题解决办法比较麻烦,可以采用在注册中断函数时,在中间插入中断跳转函数,类似于函数重定向,中断来临时先执行中断跳转函数...
2019-11-04 14:36:24
246
原创 Zigbee 应用层协议自定义
下传://设备数量 [设备索引子设备索引设备类型设备类型值] [设备索引子设备索引设备类型设备类型值]//发送给设备的包说明//类型 长度 值//type len value//dev_index 设备索引//dev_sub_index 子设备索引//dev_t...
2019-11-01 11:09:59
1047
原创 zigbee 局域网配对以及设备的管理
配对流程:协调器通过串口等方式设置进入配对模式,在配对模式下,PAN ID设置为0xffff(让协调器自己决定创建的网络),然后1s发送一次广播包,广播包中包含了该协调器的MAC地址的低16bit,该低16bit将作为配对完成后的PAN ID。上电时协调器判断当前处于配对模式还是正常模式,如果处于正常模式则PAN ID设置为MAC地址低16位,如果位配对模式则设置PAN ID为0xffff...
2019-10-28 20:37:38
2960
转载 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
691
转载 ZSTACK协调器掉电重新组网无法加入网络的解决
我用的是TI ZIGBEE2007的协议栈,由于之前默认对协调器编译NV_INIT和NV_RESTORE两个选项而其他节点只有NV_INIT这个选项所以每次我用协调器重新上电,所有的节点都是重新入网而且协调器并不会擦出以前的节点,而协调器是有网络节点上限的,所以基本上重新加入几次就满了,然后就不能继续加入了,关于这个问题,首先看看编译项 NV_INIT和NV_RESTORE的区别:(此...
2019-10-15 12:47:01
793
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
1268
转载 zstack 组网解析
转载:https://blog.youkuaiyun.com/chenxinqiang2005/article/details/38536879
2019-10-15 12:33:03
1009
原创 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
263
原创 如何利用mqtt服务器实现多设备,多用户的管理。
大家都知道mqtt协议最基本的思想就是发布订阅,也就是一个设备发布多个设备订阅。设备发布者发布一个主题,其它设备通过订阅可以获得主题发布者发送的消息。网关作为发布者发布两个主题:通配:dev/用户ID/公司ID/项目ID/设备MAC/#主题一:dev/用户ID/公司ID/项目ID/设备MAC/0该主题为设备订阅的主题,用来发送设备信息给用户,只能为指定设备发布主题二:dev/用户ID/...
2019-07-29 16:32:08
8074
原创 LAN8720 100M 掉线问题解决
最近在做一块板子的时候,使用的phy芯片为LAN8720,在使用的发现老是ping一段时间后自动掉线,从软件问题一直查找,最后发现是LAN8720掉线了,且wang网口绿灯一直常亮,拔线网线也是一样,黄灯不闪烁,且phy发热严重。问题出在本来网口电源是下面这样,但是在焊接时没有找到磁珠,就用0欧电阻代替,结果电源干扰大不稳定,换上磁珠后ping未出现网口掉线现象,发热现象明显减少。...
2019-04-10 17:20:11
11413
1
原创 STM32 晶振不起振,180Hmz跑飞解决办法
昨天在调试自己做的STM32F429IGT6核心板的时候,发现使用外部25M晶振时一直不能起振,或者所有时起振但是不稳地,程序中非常容易跑飞,换了一个8M的晶振,发现没有问题。调了一下午,最后发现是因为VCAP1,VCAP2两个引脚接的对地电容太小了,这两个管脚接电容是为了保证内部的主调压器工作稳定,如果太小会导致内部工作不稳定,程序容易跑飞等问题。我焊接的是1uF的,官方推荐是2.2uF,换上后...
2019-03-01 15:08:00
1947
原创 共享库与动态加载的实现
下面是对共享库与动态加载在操作系统中自己实现的一些思路,最终目的实现一个不带mmu单片机上的:具体实现如下:目前已经实现单个的共享库加载到内存的任何位置,多个共享库加载的思路如下:1)运行一个程序或者共享库。2)在程序头表中查找INTERP项,如果存在找到解释器,并运行(这里的解释器并不是去解释代码运行,而是用来重定向代码的,并不会影响代码的运行效率)3)重定向代码4)完成目前微内核需要实现如下的...
2018-06-14 21:27:48
1417
原创 elf .got .plt 表以及共享库加载原理,在没有mmu的单片机上实现共享库
之前研究了在没有mmu的单片机上实现动态加载,因为之前使用的是keil编译工具,它使用的是arm公司自己开发的编译器,很多地方不好研究。其实使用gcc也是可以开发Stm32的,最近发现一个开发工具叫tureStudio,是一个利用Eclipse与gcc组合起来的开发工具,特点是使用了gcc编译器,资料多呀,特别是对于elf文件格式的与linux下基本一模一样。下面就总结一下最近研究到的东西...
2018-06-12 00:54:07
1537
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 << 11; lo...
2018-05-29 13:39:21
5115
原创 在没有MMU功能的单片机上实现动态应用程序加载
在没有mmu的cpu上实现动态加载的功能。mmu:拥有虚拟地址映射的功能。在没有mmu的设备上实现动态加载是可能的,两种方法。1)我们知道局部变量占用的是堆栈的内存,全局变量和静态变量占用的是静态存储区,而静态存储区的地址是一个绝对的地址。所以要想实现动态模块的加载,我们不能够去使用全局变量和静态变量,解决方案是通过内存申请来解决。还有一个问题就是在使用函数指针的时候,其实也是一个绝对的地址,那我...
2018-05-07 20:36:50
4801
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
3874
1
转载 glassfish4.1 简单操作
n目录运行asadmin,FreeBSD下运行./asadmin,进入GlassFish控制台,Windows 和 FreeBSD 的 asadmin 的进入只是形式的不同,本质没区别。 # 创建一个domain (ZIP 解压开,已经默认有一个 domain1),另:在修改了管理员名称后会提示设置密码,否则会略过设置密码。create-domain domai
2017-07-23 15:21:31
822
原创 spring jquery Mobile 页面跳转后浏览器url未改变&&javaScript代码刷新后才能执行的问题解决
最近在做一个远程控制的项目的时候,使用了JqueryMoile,在其中发现一个问题:当我在使用如下标签是发现:设备列表跳转之后发现浏览器的url 没有发生改变。只有又发现,我在一个网页内写的javascript代码第一次加载网页的时候,JavaScript代码也没有执行。 反正中间耗费了很多时间去定位问题的所在。也是由于刚接触此类技术,并不是很精。后来想想还是追
2017-07-14 12:48:28
1046
转载 JavaScript如何获得input元素value值
转载地址:http://aquarius-zf.iteye.com/blog/605144在页面中我们最常见的页面元素就是input了,但是我们如何用JavaScript得到网页input中输入的value值呢,其实很简单,方法也不止一种,据我总结比较常用的就是下面的两种方法,闲话不多说了,下面那就来看看我说的方法吧: 方法一、 Java代码
2017-07-13 18:00:27
1057
转载 JavaScript JSON 简易教程
JavaScript JSON JSON 是用于存储和传输数据的格式。JSON 通常用于服务端向网页传递数据 。 什么是 JSON?JSON 英文全称 JavaScript ObjectNotationJSON 是一种轻量级的数据交换格式。JSON是独立的语言 * JSON 易于理解。* JSON 使用 JavaScript 语法,但是 JS
2017-07-13 17:53:31
708
转载 获取C#各种运行目录
// 获取程序的基目录。 System.AppDomain.CurrentDomain.BaseDirectory// 获取模块的完整路径。 System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 System.Environment.Curr
2017-07-06 16:27:03
1796
转载 Zstack协议栈中CC2530协调器掉电重启后重新加入之前网络的方法
协调器断电重启之后重新加入之前网络;在 workspace 中选中 CoordinatorEB,在Project -> Options -> c/c++ Compiler 中选中对话框 Preproce ,在Define symbols 中添加 NV_RESTORE;后编译下载;测试:一个协调器,一个路由器,一个终端,路由器和终端定时给协调器发送信息,协调器收到数据后串口打印出来,设备上电(不分先
2017-06-23 14:32:39
2626
转载 C#中HashTable的用法
命名空间System.Collections 名称哈希表(Hashtable) 描述用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对. 二,哈希表的
2017-06-06 09:19:40
494
原创 w5500+stm32+cc2530的家庭网关小板
好久没有写过博客了,之前有一个项目就是与家电控制相关的,尝试了多种方案,项目结束了,自己还是在不断的更新。板子上主要的硬件包括:w5500 stm32 cc2530 sd卡 ch340g于是又 吧板子重新画了一次,这次的板子显得更加的完美,基本硬件调试通过,网络稳定。板子焊接的很丑,就不要笑我了上两张图:部分的原理图:USB转串口SD卡:
2017-06-04 15:38:57
3073
转载 VxWorks操作系统shell命令与调试方法总结
VxWorks下的调试手段主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤、思路。1 Tornado的调试工具嵌入式实时操作系统VxWorks和集成开发环境Tornado的组成结构如下图1。分为主机和目标机系统。图1 集成开发环境结构图在Tornado下,调试相关操作在Debug菜单下,包括:
2017-03-09 10:23:21
3416
1
转载 USB设备类型代码以及详细说明
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]说明:由于链接是相对路径,下载和点击会不正常,如果需要下载文中提到的文档,请去官方网站相关地址下载以下是USB所有支持的设备类型代码.地址:http://www.usb.org/developers/defined_classUSB Class Codes
2017-03-03 10:53:19
1903
转载 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
2499
转载 AMP(非对称多进程处理模式)和Zynq SoC的OCM
在上一篇博客中我们了解了Zynq SoC的OCM(片上存储器) ,利用它可以实现在AMP模式下内部处理器内核之间的通信。现在我们将写一些程序代码将这个设备(OCM)利用起来。在这个演示示例中我们将使用UART接口实现CPU0 与上位机(笔记本)之间的通信连接,我们将从上位机发送8位ASCII码值到Zynq SoC的串口,一旦被接收,这个8位的ASCII码值将被传输到指定的OCM内存地址,并且这
2017-02-10 15:30:20
4333
2
zynq pl读写ddr 实现vga高清显示(2)
2018-11-29
zynq pl读写ddr 实现vga高清显示
2018-11-29
zrtos操作系统源码,stm32可以直接使用
2016-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人