【分享】Micrium uC/Probe 4.0.16.10
uC/Probe 4.0.16.10具体的详细信息我就不介绍了, 以前帖子里面介绍过。
以前的帖子:
1)uC/Probe 4.0.16.4:http://www.amobbs.com/thread-5647708-1-1.html
2)uC/Probe 4.0.16.1:http://www.amobbs.com/thread-5647390-1-1.html
3)uC/Probe 3.6.15.700:http://www.amobbs.com/thread-5636836-1-1.html
1、uC/Probe 4.0.16.10 安装程序
2、和谐文件
和谐方法:
1)安装软件
2)将下载的和谐文件解压后,覆盖安装目录下的同名文件。
最后说明一下:
1)和谐软件仅限大家学习和研究使用,如果商用请购买正版软件,因此产生的版权纠纷与本人无关。
2)为了后续大家能继续“研究和学习”新版软件,请大家低调使用,勿大范围扩散,更谢绝转至其他论坛,否则后面新版本和谐不了了大家都没得玩了。 谢谢分享! 谢谢分享 谢谢啦,非常好 多谢分享,收藏了 多写分享,非常有用。 LZ好人啊,高手 谢谢分享。。。。。 楼主!上一版的V8闪退问题这版已经修复了,已经测试完毕,变量在图表上已经显示出来啦!! 问下楼主,你的ucos-ii内核能在awareness界面上显示吗?我的ucos-ii显示不出来。。。看手册说需要将几个函数添进去,但是找不到宏定义和函数体,楼主你知道吗?
再多说一句:楼主造福大众啊!感激不尽 深情呼唤楼主中。。。 zlogon 发表于 2016-6-20 13:01
问下楼主,你的ucos-ii内核能在awareness界面上显示吗?我的ucos-ii显示不出来。。。看手册说需要将几个函 ...
首先,我好久没用 uC/OS-II了,我现在现在在用uC/OS-III (发现并使用uC/Probe这个软件之前,我就开始用uC/OS-III),所以现在我也没有uC/OS-II的工程和硬件可以测试。
然后在说下你说的这2个地方, 自从uC/OS-III开始,它的代码把跟CPU操作有关的一些定义和函数单独提取出来形成了一个“uC-CPU”的库了,记得之前看 uC/OS-III 书籍中作者说是为了更容易通过某些软件认证,具体的不详。
我刚刚也看了,我的代码中,确实有调用过这些函数(也是以前用官方的移植代码中Copy过来的),如下是我现在工程的Main函数:
int main(void)
{
OS_ERR err;
NVIC_SetVectorTable(NVIC_VectTab_FLASH,SystemAddress - 0x08000000);
CPU_Init(); /* Initialize the uC/CPU services */
Mem_Init(); /* Initialize Memory Mmanagment Module */
CPU_IntDis();
OSInit(&err); //OS初始化
Task_Monitor_Create(); //建立任务监视器任务(其他任务在此任务中创建)
OSStart(&err); //启动OS,打开总中断
return(0);
}
我刚刚也试了,把这些函数屏蔽掉,在编译运行的话,虽然硬件也可以工作,但是uC/Probe却无法显示任务信息了。至于uC/OS-II该如何解决,我就不清楚了。你可以试试在 Micrium 官网找个 uC/OS-II 移植的工程,看看里面有没有相应的代码。
此外,在第一个任务中,系统时钟打开、硬件初始化完毕后,建立其他任务之前,还运行了如下代码:
cpu_clk_freq = BSP_CPU_ClkFreq(); /* Determine SysTick reference freq. */
cnts = cpu_clk_freq / (CPU_INT32U)OSCfg_TickRate_Hz; /* Determine nbr SysTick increments */
OS_CPU_SysTickInit(cnts); /* Init uC/OS periodic time src (SysTick). */ /* Initialize Memory Management Module */
#if OS_CFG_STAT_TASK_EN > 0u
OSStatTaskCPUUsageInit(&err); /* Compute CPU capacity with no task running */
#endif
以下是另外一些函数,也是从官方的工程中Copy过来的:(BSP_Init()函数除外,这个是我自己写的)
#include "bsp.h"
/*
*********************************************************************************************************
* REGISTERS
*********************************************************************************************************
*/
#defineDWT_CR *(CPU_REG32 *)0xE0001000
#defineDWT_CYCCNT*(CPU_REG32 *)0xE0001004
#defineDEM_CR *(CPU_REG32 *)0xE000EDFC
#defineDBGMCU_CR *(CPU_REG32 *)0xE0042004
/*
*********************************************************************************************************
* REGISTER BITS
*********************************************************************************************************
*/
#defineDBGMCU_CR_TRACE_IOEN_MASK 0x10
#defineDBGMCU_CR_TRACE_MODE_ASYNC 0x00
#defineDBGMCU_CR_TRACE_MODE_SYNC_01 0x40
#defineDBGMCU_CR_TRACE_MODE_SYNC_02 0x80
#defineDBGMCU_CR_TRACE_MODE_SYNC_04 0xC0
#defineDBGMCU_CR_TRACE_MODE_MASK 0xC0
#defineDEM_CR_TRCENA (1 << 24)
#defineDWT_CR_CYCCNTENA (1 <<0)
/*
*********************************************************************************************************
* BSP_Init()
*
* Description : Initialize the Board Support Package (BSP).
*
* Argument(s) : none.
*
* Return(s) : none.
*
* Caller(s) : Application.
*
* Note(s) : (1) This function SHOULD be called before any other BSP function is called.
*********************************************************************************************************
*/
void BSP_Init (void)
{
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOB);
GPIO_DeInit(GPIOC);
GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOE);
GPIO_DeInit(GPIOF);
GPIO_DeInit(GPIOG);
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); /* 写入0x5555,使能看门狗寄存器的写入*/
IWDG_SetPrescaler(IWDG_Prescaler_256); /* 时钟分频,40K/256=156HZ(6.4ms)*/
IWDG_SetReload(3125); /* 喂狗时间 20s/6.4ms=3125 .注意不能大于0xfff*/
IWDG_ReloadCounter();
IWDG_Enable();
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
Delay_Init();
RTC_Init();
SRAM_Init();
LCD_X_TFT_Init();
Relay_Init();
LED_Init();
Buzzer_Init();
EEP_Init();
DACx_Init();
ADCx_Init();
RS232_Init();
CH376_PORT_INIT( );/* 接口硬件初始化 */
}
/*
*********************************************************************************************************
* BSP_CPU_ClkFreq()
*
* Description : Read CPU registers to determine the CPU clock frequency of the chip.
*
* Argument(s) : none.
*
* Return(s) : The CPU clock frequency, in Hz.
*
* Caller(s) : Application.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_INT32UBSP_CPU_ClkFreq (void)
{
RCC_ClocksTypeDefrcc_clocks;
RCC_GetClocksFreq(&rcc_clocks);
return ((CPU_INT32U)rcc_clocks.HCLK_Frequency);
}
/*
*********************************************************************************************************
* CPU_TS_TmrInit()
*
* Description : Initialize & start CPU timestamp timer.
*
* Argument(s) : none.
*
* Return(s) : none.
*
* Caller(s) : CPU_TS_Init().
*
* This function is an INTERNAL CPU module function & MUST be implemented by application/
* BSP function(s) but MUST NOT be called by application function(s).
*
* Note(s) : (1) CPU_TS_TmrInit() is an application/BSP function that MUST be defined by the developer
* if either of the following CPU features is enabled :
*
* (a) CPU timestamps
* (b) CPU interrupts disabled time measurements
*
* See 'cpu_cfg.hCPU TIMESTAMP CONFIGURATIONNote #1'
* & 'cpu_cfg.hCPU INTERRUPTS DISABLED TIME MEASUREMENT CONFIGURATIONNote #1a'.
*
* (2) (a) Timer count values MUST be returned via word-size-configurable 'CPU_TS_TMR'
* data type.
*
* (1) If timer has more bits, truncate timer values' higher-order bits greater
* than the configured 'CPU_TS_TMR' timestamp timer data type word size.
*
* (2) Since the timer MUST NOT have less bits than the configured 'CPU_TS_TMR'
* timestamp timer data type word size; 'CPU_CFG_TS_TMR_SIZE' MUST be
* configured so that ALL bits in 'CPU_TS_TMR' data type are significant.
*
* In other words, if timer size is not a binary-multiple of 8-bit octets
* (e.g. 20-bits or even 24-bits), then the next lower, binary-multiple
* octet word size SHOULD be configured (e.g. to 16-bits).However, the
* minimum supported word size for CPU timestamp timers is 8-bits.
*
* See also 'cpu_cfg.h CPU TIMESTAMP CONFIGURATIONNote #2'
* & 'cpu_core.hCPU TIMESTAMP DATA TYPES Note #1'.
*
* (b) Timer SHOULD be an 'up'counter whose values increase with each time count.
*
* (c) When applicable, timer period SHOULD be less than the typical measured time
* but MUST be less than the maximum measured time; otherwise, timer resolution
* inadequate to measure desired times.
*
* See also 'CPU_TS_TmrRd()Note #2'.
*********************************************************************************************************
*/
#if (CPU_CFG_TS_TMR_EN == DEF_ENABLED)
voidCPU_TS_TmrInit (void)
{
CPU_INT32Ucpu_clk_freq_hz;
DEM_CR |= (CPU_INT32U)DEM_CR_TRCENA; /* Enable Cortex-M3's DWT CYCCNT reg. */
DWT_CYCCNT = (CPU_INT32U)0u;
DWT_CR |= (CPU_INT32U)DWT_CR_CYCCNTENA;
cpu_clk_freq_hz = BSP_CPU_ClkFreq();
CPU_TS_TmrFreqSet(cpu_clk_freq_hz);
}
#endif
/*$PAGE*/
/*
*********************************************************************************************************
* CPU_TS_TmrRd()
*
* Description : Get current CPU timestamp timer count value.
*
* Argument(s) : none.
*
* Return(s) : Timestamp timer count (see Notes #2a & #2b).
*
* Caller(s) : CPU_TS_Init(),
* CPU_TS_Get32(),
* CPU_TS_Get64(),
* CPU_IntDisMeasStart(),
* CPU_IntDisMeasStop().
*
* This function is an INTERNAL CPU module function & MUST be implemented by application/
* BSP function(s) but SHOULD NOT be called by application function(s).
*
* Note(s) : (1) CPU_TS_TmrRd() is an application/BSP function that MUST be defined by the developer
* if either of the following CPU features is enabled :
*
* (a) CPU timestamps
* (b) CPU interrupts disabled time measurements
*
* See 'cpu_cfg.hCPU TIMESTAMP CONFIGURATIONNote #1'
* & 'cpu_cfg.hCPU INTERRUPTS DISABLED TIME MEASUREMENT CONFIGURATIONNote #1a'.
*
* (2) (a) Timer count values MUST be returned via word-size-configurable 'CPU_TS_TMR'
* data type.
*
* (1) If timer has more bits, truncate timer values' higher-order bits greater
* than the configured 'CPU_TS_TMR' timestamp timer data type word size.
*
* (2) Since the timer MUST NOT have less bits than the configured 'CPU_TS_TMR'
* timestamp timer data type word size; 'CPU_CFG_TS_TMR_SIZE' MUST be
* configured so that ALL bits in 'CPU_TS_TMR' data type are significant.
*
* In other words, if timer size is not a binary-multiple of 8-bit octets
* (e.g. 20-bits or even 24-bits), then the next lower, binary-multiple
* octet word size SHOULD be configured (e.g. to 16-bits).However, the
* minimum supported word size for CPU timestamp timers is 8-bits.
*
* See also 'cpu_cfg.h CPU TIMESTAMP CONFIGURATIONNote #2'
* & 'cpu_core.hCPU TIMESTAMP DATA TYPES Note #1'.
*
* (b) Timer SHOULD be an 'up'counter whose values increase with each time count.
*
* (1) If timer is a 'down' counter whose values decrease with each time count,
* then the returned timer value MUST be ones-complemented.
*
* (c) (1) When applicable, the amount of time measured by CPU timestamps is
* calculated by either of the following equations :
*
* (A) Time measured=Number timer counts*Timer period
*
* where
*
* Number timer counts Number of timer counts measured
* Timer period Timer's period in some units of
* (fractional) seconds
* Time measured Amount of time measured, in same
* units of (fractional) seconds
* as the Timer period
*
* Number timer counts
* (B) Time measured=---------------------
* Timer frequency
*
* where
*
* Number timer counts Number of timer counts measured
* Timer frequency Timer's frequency in some units
* of counts per second
* Time measured Amount of time measured, in seconds
*
* (2) Timer period SHOULD be less than the typical measured time but MUST be less
* than the maximum measured time; otherwise, timer resolution inadequate to
* measure desired times.
*********************************************************************************************************
*/
#if (CPU_CFG_TS_TMR_EN == DEF_ENABLED)
CPU_TS_TMRCPU_TS_TmrRd (void)
{
return ((CPU_TS_TMR)DWT_CYCCNT);
}
#endif
以上代码供参考。 谢谢啦,非常好 谢谢,我再试试ucos-ii,看看能不能跑起来,毕竟ucos-ii资料还比较全 再次感谢楼主 官网都只看到uC/Probe 4.0.16.4版本啊,这10版本哪可以下载? gagmeng 发表于 2016-6-21 10:25
官网都只看到uC/Probe 4.0.16.4版本啊,这10版本哪可以下载?
首先在你的电脑上安装 uC/Probe 4.0.16.4,安装好后运行的时候,会提示你更新,你选择更新, 就会在你的 系统一个临时目录下,下载一个 update.exe 文件,这个 update.exe 实际上就是 uC/Probe 4.0.16.10 支持,呵呵。 好东西啊 谢谢分享,只是下载的时候报病毒 这个必须领起来!强大的工具,话说这个工具刚出来的时候我就一直在找和谐版本,今天终于看到大牛了 谢谢分享 感谢!好人长寿! 正在官网下载4.2.1.544,看看楼主的key能否使用 guxingganyue 发表于 2017-7-20 18:59
正在官网下载4.2.1.544,看看楼主的key能否使用
你下载的4.2.1.544 是最新版, 他这个之前的版本就是 4.2.17 开头, 我也很奇怪。 破解不能混用, 每个版本都不一样。
页:
[1]