uc

移植 uCos-III 3.03 到 STM32F429 上

☆樱花仙子☆ 提交于 2020-02-29 10:32:02
背景 通过STM32 的学习,我们可以往更深层次的地方走,尝试系统上的一些开发。 STM32: F429(StdPeriph) uCos-III : v3.03? 有关说明: 在移植 3.04 版本 UCOSIII 的时候遇到了这样一个问题:一旦调用 OSStatTaskCPUUsageInit()函数就会进入 hardfault,(如果这时选择-O1 或者-O2 优化的话就没有问题),不知是 KEIL 问题还是 UCOSIII 3.04 版本的问题,所以为了保险起见我们使用 3.03 版本的 UCOSIII。 另外,目前 UCOSIII 的资料基本都是基于 UCOSIII 3.03 版本的,所以这也是我们选择 3.03 版本 UCOSIII 的另一个主要原因。 如果一定要使用 UCOSIII 3.04 的话,使用 KEIL 时一定要 选择-O1 或者-O2 优化。 uCos 介绍 什么是 uC/OS-III? uC/OS-III(Micro C OS Three 微型的 C语言编写的操作系统第 3 版)是一个可升级的,可固化的,基于优先级的实时内核。它对任务的个数无限制。uC/OS-III 是一个第 3 代的系统内核,支持现代的实时内核所期待的大部分功能。例如资源管理,同步,任务间的通信等等。然而,uC/OS-III 提供的特色功能在其它的实时内核中是找不到的

UC接口文档

微笑、不失礼 提交于 2020-02-09 14:11:15
UC 接口文档 一、 功能描述 提供同步登录、退出、注册等相关接口,可以实现用户一个账号,在一处登录,全站通行。 二、 测试环境UC 地址 http://s1.p5w.net/uc/ 三、 相关接口 UC_API=http://s1.p5w.net/uc/ UC_IP = UC_KEY = 123456 UC_APPID = 15 UC_CONNECT = 1. 注册 integer uc_user_register(string username , string password , string email) 参数说明 username 用户名 password 密码 email 电子邮件地址 返回值 值 integer 大于 0: 返回用户 ID,表示用户注册成功 -1: 用户名不合法 -2: 包含不允许注册的词语 -3: 用户名已经存在 -4: Email 格式有误 -5: Email 不允许注册 -6: 该 Email 已经被注册 2. 用户登录 array uc_user_login(string username , string password [, bool isuid]) 参数 说明 username 用户名 password 密码 isuid 是否使用用户 ID登录 1:使用用户 ID登录 0:(默认值) 使用用户名登录 返回值 值 String 大于 0

STM32CubeMX创建F429/L475 HAL库工程并移植UCOSIII (二)(文末附源码)

依然范特西╮ 提交于 2020-01-22 16:16:05
二、从Micrium官网下载UCOSIII源码并添加文件到工程中 1. 到Micrium官网下载ucos源码程序(MDK版) micrium网址: https://www.micrium.com/ 选择STM32F4xx 下载示例工程 此处需要账号,大家自己注册一下 下载下来目录如下图所示: 2.在STM32CubeMX生成的工程中添加UCOS-III文件夹 2.1 在UCOS-III目录下创建文件夹,放置UCOSIII源码 在STM32CubeMX工程 STM32F429_UCOSIII_DEMO\UCOS-III\ 目录下创建 BSP 和 CONFIG目录 2.1.1 BSP目录填充 复制 Micrium_STM32F429II-SK_OS3\Micrium\Examples\ST\STM32F429II-SK\BSP 目录下的 bsp.c 和 bsp.h 到STM32CubeMX工程 STM32F429_UCOSIII_DEMO\UCOS-III\BSP 2.1.2 CONFIG目录填充 复制 Micrium_STM32F429II-SK_OS3\Micrium\Examples\ST\STM32F429II-SK\OS3 目录下的 8个文件 到STM32CubeMX工程 STM32F429_UCOSIII_DEMO\UCOS-III\CONFIG 2.1.3

忘记ucenter密码 与 忘记discuz dx的后台密码的解决方法

血红的双手。 提交于 2020-01-07 12:32:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前台是能接解到代码。因为 dx,discuz后台管理密码可以能过ucenter修改,所以只需要破解ucenter密码,进入ucenter修改dx的用户密码就可以了。 找到ucenter的根目录,定位到uc_server/data/config.inc.php文件 $password = '123456';//这就是新密码 $UC_FOUNDERSALT = 'abcdf';//此次对应:define('UC_FOUNDERSALT', '123456'); $passwordmd5 = preg_match( '/^\w{32}$/', $password ) ? $password : md5( $password ); $UC_FOUNDERPW = md5( $passwordmd5 . $salt );//此次对应:define('UC_FOUNDERPW', '把加密串放在这里'); echo $UC_FOUNDERPW; 修改: define('UC_FOUNDERSALT' define('UC_FOUNDERPW' 来源: oschina 链接: https://my.oschina.net/u/91955/blog/661291

uC/OS-III和FreeRTOS的区别

落花浮王杯 提交于 2019-12-16 07:30:22
在阅读完uC/OS-III(V3.03.01)和FreeRTOS(V10.0.1)的源码后,我对RTOS有了较深的认识。现将它们之间的一些区别总结出来,有利于大家理解这两个RTOS。 1、uCOS-III中所有的内核对象(如任务控制块、消息队列、信号量等)都是静态创建的,需要用户提供。FreeRTOS中的内核对象支持动态和静态两种创建方法。 (PS: 其实系统提不提供动态创建功能并不那么重要,因为在静态创建的方法的基础上加入内存管理机制,就能自已封装实现动态创建函数) 2、uCOS-III中的任务状态较多,因为它存在“基本状态+挂起状态”这类状态,FreeRTOS中挂起态是个单独的状态。在FreeRTOS中,如果suspend一个正在阻塞的任务,API内部会把任务从相应阻塞表中删除,并将其挂在xSuspendedTaskList上,当该任务被resume后,它就是就绪态,而不会重新返回阻塞态。而uCOS-III中的任务即便在阻塞时被suspend了,它依然处于阻塞态(即等待某个事件发生),如果在suspend的过程中事件发生了,它将解除阻塞态,变为纯粹的挂起态;如果在resume后,该事件仍未发生,它将解除挂起态,变为阻塞态。 (PS: 我感觉uCOS-III中的“挂起”更能称之为“挂起”) 3、为了实现中断和任务的同步,需要在中断中进行post操作,uC/OS

整合 ucenter 注册自动激活

血红的双手。 提交于 2019-12-06 02:32:08
应用整合 UCenter,同步注册到 Discuz 的用户,在 Discuz 登录时得手动激活,用户体验很不好,不过解决方法很简单~ 修改应用下的 ./uc_client/model/user.php 文件,大概在 138 行(UCenter 1.6)处的 function add_user 函数里添加代码: function add_user($username, $password, $email, $uid = 0, $questionid = '', $answer = '', $regip = '') { $regip = empty($regip) ? $this->base->onlineip : $regip; $salt = substr(uniqid(rand()), -6); $password = md5(md5($password).$salt); $sqladd = $uid ? "uid='".intval($uid)."'," : ''; $sqladd .= $questionid > 0 ? " secques='".$this->quescrypt($questionid, $answer)."'," : " secques='',"; $this->db->query("INSERT INTO ".UC_DBTABLEPRE."members

Discuz! X1 全新安装图文教程

二次信任 提交于 2019-12-04 13:13:38
Crossday Discuz! Board(以下简称 Discuz!,中国国家版权局著作权登记号 2008SR11708)是康盛创想(北京)科技有限公司(英文简称Comsenz)推出的一套通用的社区论坛软件系统。作为国内最大的社区软件及服务提供商,Comsenz旗下的 Discuz! 产品,无论在功能、稳定性、负载能力、安全保障等方面都居于国内外同类产品领先地位,是全球成熟度最高、覆盖率最大的论坛软件系统之一。 说明:本文档用于帮助您全新安装完整的 Discuz! X 社区软件。 一、下载 Discuz! X 官方版到本地或者服务器上 下载地址: http://www.comsenz.com/downloads/install/discuzX1#down_open 二、解压并上传 Discuz! X 程序到服务器且修改相应目录权限 1、上传 Discuz! X1 Beta 程序到服务器上 解压缩得到如下图所示的三个文件: upload 这个目录下面的所有文件是我们需要上传到服务器上的可用程序文件; readme 目录为产品介绍、授权、安装、升级、转换以及版本更新日志说明; utility 目录为论坛附带工具,包括升级程序。 将其中 upload 目录下的所有文件使用 FTP 软件以二进制方式(常见 FTP 软件二进制的设置方法 http://faq.comsenz.com

UNICORN模拟ARM遇到的问题记录

匿名 (未验证) 提交于 2019-12-03 00:19:01
ARM指令为4字节 THUMB指令为2字节 THUMB2 指令可能是2字节,也可能是4字节 (通过PC的最低bit位来检测) 在使用UNICORN模拟器 THUMB2 的时候,返回 UC_ERR_INSN_INVALID一定要检查当前设置PC值是不是正确 因为在unicorn_arm.c中对于 reg_write写入PC寄存器的时候 case UC_ARM_REG_R15: 会通过检测PC寄存器的最低bit 为0或者1来确定当前是属于THUMB模式还是ARM模式 然后设置当前环境的模式。 所以如果是出于THUMB模式。一定要在PC上面+1。也就是说写PC寄存器的时候值应该为奇数 比如 err = uc_emu_start(uc, BASE + 0x12E2c + 1, BASE + 0x1BE64, 0, 0); 问题2 这是因为CPU是支持浮点操作的。但是UNICORN中浮点操作还没有开启。 所以要通过设置寄存器开启VFP uint64_t tmp_val; err = uc_reg_read(uc, UC_ARM_REG_C1_C0_2, &tmp_val); if (err) { printf("uc_open %d\n", err); break; } tmp_val = tmp_val | (0xf << 20); err = uc_reg_write(uc, UC

ucosIII

匿名 (未验证) 提交于 2019-12-03 00:14:01
①配置文件,通过定义这些文件里宏的值可以轻易地裁剪 uC/OS-III 的功能。 ②用户应用文件, 定义和声明应用任务。 ③内核服务文件,其代码与 CPU 无关,可以不做任何修改移植到任何 CPU。 本书主要讲解这部分内容。 ④底层函数库,比如字符串的常规操作, 常用的数学计算, 等等。 ⑤CPU 移植文件, 用户如果想要移植 uC/OS-III 到不同平台上,需要修改这部分代码。 ⑥CPU 配置文件,主要是 CPU 的一些工作模式和服务函数。 ⑦其他 CPU 相关文件。   在 uC/OS-III 中,对内核对象的管理大多采用线性链表的数据结构,包括单向链表和双向链表。链表就是将要管理的对象按照方便管理的规则一个接一个串联在一起,提高管理效率   在 uC/OS-III 中,可以创建无数多个任务, 让这些任务并发运行,就好像有多个主函数在运行一样。 在 uC/OS-III 初始化的时候, 至少会创建空闲任务 OS_IdleTask()和时基任务OS_TickTask()这两个任务, 另外还有三个可选择的内部任务,软件定时器任务OS_TmrTaks() 、中断延迟提交任务 OS_IntQTask()和统计任务 OS_StatTask()。      从用户的角度来看, uC/OS-III 中的任务可以分为 5 种状态,休眠态、就绪态、运行态、挂起态和中断态, 如下表所示。   从

DiscuzX1.5 使用心得

混江龙づ霸主 提交于 2019-11-28 02:21:31
首先安装什么的就不说了,但是迁移的时候记得,一定要凯short tag. 如果数据库变动,要改三处地方 1. config/config_global.php 2. config/config_ucenter.php 3. uc_server/data/config.inc.php 如果域名出现变动。 那么要改两处。 1. config/config_ucenter.php 里面的UC_API 2. 到discuzx后台的ucenter界面里面,修改应用里面的地址 转载于:https://www.cnblogs.com/TLightSky/archive/1970/01/01/2941459.html 来源: https://blog.csdn.net/weixin_30246221/article/details/99919849