学智组_uTenux开发板初测
幸运的6月5日,期待已久的开发板,公司代收的,晚上有时间来学习学习,看到如此漂亮的开发板,喜出望外,虽然开发板的显示屏有些挤压坏,但具观察只是玻璃有些许裂痕,四线触摸屏应该不受影响,继续学习,这很幸运,显示屏依然可用已经相当不错,这款开发板是非常心仪的!看,它多么精致、有大师风范!
测试一:LCD测试
1、用KEIL4.23+JLINK V8下载代码,显示如下(用KEIL4.60+JLINK V8会报错,说JLINK V8是克隆的,KEIL直接崩溃关闭)
后一我的4楼有了新的解决办法
测试二、串口测试
波特率:115200
测试三、触摸屏测试
波特率:11520 ,测试显示屏的灵敏度,串口输出如下信息,估计是四线电阻屏坏了
KEIL RealView MDK 环境下实现的课程实验
工程构造及串口调试
参照教程:uTenux_User_Manual_快速指南.pdf和uTenux_Kernel_BasisExercise_实验教程.pdf
使用工程:
D:\uloong\uTenux\bin\app_at91sam3\workspace.uvmpw , 启动MDK , 在appusermain 项目的src 组中增加TaskSample.c,如下图所示,然后,project-->Butch Build-->Download-->OK。
串口显示
关于JLINK是克隆版的问题,我有了新的解决办法
我的JLINK安装完最新驱动后,打开J-Link Commander就弹出一个update firmware的窗口,升级之后segger就发威了,弹出一个界面说我的jlink是克隆版本,需要下载OEM什么的,很不爽啊,那么就让我来详解破解Jlink的步骤吧。
所需软件如下:WinHex.rar、Jlink-v8固件烧写AT91-ISP v1.13 & V8.bin.rar
所需工具如下:跳帽一个、Jlink V8.bin固件一个
一、清除jlink原有固件
1.首先给jlink插入USB,保持通电,然后可靠地给Erase短路(用跳线连上),并保持将近5s钟然后断电并且摘掉跳帽;
2.这时候把跳帽再连上TST的插针,即短路后插入USB通电,并保持将10s钟以上(此时电脑显示一个无法识别的硬件设备),然后断开USB连接,把跳帽摘下来;
3.此时把jlink用USB插入电脑,到了这一步,基本工作完成
二、修改jlink V8固件
首先使用winHEX打开 V8.bin 固件,并且找到以0xFF00为起始地址的4个Bytes并将其修改为0xFFFFFFFF,并在下面不远的地方找到GDBFull,其相对应的十六进制的代码47 44 42 46 75 6C 6C 改成47 44 42 46 55 4C 4C (将小写的改成大写的,目的是跳过GDBFull)并且保存此修改好的固件文件。
三、烧写jlink V8固件
打开sam-ba,开始会弹出一个界面选择芯片的型号以及电脑识别的COM口(这里一般会自动识别),点击connect,然后进入到主操作界面,导入上一步已经修整好的V8固件,并且点击send file;这时会出现一个窗口,这里提示是否解锁Flash(不解锁无法下载)点击YES,然后等待烧写固件完成再次会弹出一个窗口提示是否写保护(写了保护后不能自动升级,但选择写保护可以防止程序不被冲掉)点击NO;
到了这里就已经完成了烧写固件的所有步骤;关掉sam-ba,重新摘掉jlink并且再插上Jlink电脑就开始自动识别jlink并且自动安装驱动为J-Link。
四、修改jlink V8 S/N并升级固件
我个人安装的是4.68版本的firmware,接下来下一步需要注意的是步骤最好不要颠倒,因为一旦颠倒你就需要重新刷固件了。
打开segger自带的jlink commander,这时会跳出一个界面叫我们更新最新的firmware,到这里一定先不要更新;我们需要做的工作是修改jlink的SN码,当然了在之前的修改V8.bin固件里面也可以完成这一步骤,但修改相对麻烦,还得找SN码的OFFset,但是在commander里面直接一个指令就可以很方便的修改:Exec SetSN=20060125,但是这个SN码千万不能是11111117 或 805306163,因为SEGGER正是对这两个固件SN进行了强制校验,修改为其他值才可以完美地达到我们的目的。这里我给大家一个我个人找到的SN码: 20060125;到了这里我们重新打开jlink commander就可以更新firmware了。
KEIL RealView MDK V4.60环境下实现的课程实验一(任务)
程序的学习与注释文件如下:
tk_sysimpl.c-------micro T-Kernel System Management Function.//系统管理功能
CFN_BOOT_MESSAGE 在文件tk_config_depend.h中
USE_HOOK_TRACE 钩子的定义在系统配置定义中
Debugger support function//调试支持功能0: Invalid//无效 1: Valid//有效
用Microsoft Visual Studio 2005做的工程编译器,方便快捷
下载后串口显示如下:
思考问题的回答:
1) 如果任务C 在任务循环中不是进行循环,而是也调用tk_slp_tsk,会出现什么情况?为什么?
答:如果任务C在任务循环中不进行循环,而也调用睡眠功能,会出现任务B、任务A和任务C同时睡眠的情况,因为任务同时睡眠会使系统无任务可执行,从而进入用户应用程序的入口程序usermain()中。
2) 找找参考程序中有没有永远不会执行的代码?实际修改一下,看看判断的是否准确?为什么?
答:参考程序中有永远不会被执行的代码,如下:
tm_putstring((UB*)"task A will Exit ;\n"); //这两句在程序中执行不到
tk_ext_tsk(); //退出任务A
tm_putstring((UB*)"task C will Exit ;\n"); //这两句在程序中执行不到
tk_ext_tsk(); // 退出任务C
经过修改程序测试,的确执行不到,因为这几句代码均在无条件循环for( ; ; )语句之外
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |