MDK

关于MDK使用的一些技巧~

≡放荡痞女 提交于 2021-01-28 02:31:28
开发过程中,常常会参考一些例程,有些时候,这些例程使用 MDK打开就能使用,而有些时候,就不是那么顺利,比如可能需要你安装一些 Pack或者兼容包。 对于这些安装包,鱼鹰之前介绍了可以使用 IDM加快下载速度(《 推荐一个下载神器(官网资料下载必备) 》),而对于一些常见的安装包,比如 keil、pack、兼容包等,我们也可以不去官网下载,而是直接在一些国内论坛下载,比如安富莱,这样你的下载速度会快很多。 安装完之后,一般需要安装驱动,而这些驱动其实在安装目录下就已经存在了,比如常见的 ST-LINK,J-LINK等驱动: 在 stlink文件夹中,除了驱动外,还有升级软件,如果需要升级你的固件,那么直接使用它就可以了(不过可能不是最新的)。 安装方法也很简单,通过设备管理器,找到上面的对应文件夹即可开始安装: 所以对于新手很难搭建的开发环境在老手手里很快就完成了: MDK 软件安装 -> 驱动安装 -> Pack 安装 ->管理员启动MDK+ PJ(2032) 一气呵成。 鱼鹰早期也写过一篇关于如何使用KEIL同时开发 51 和 32 的笔记,感兴趣的话,可以看看《 如何让 KEIL 同时开发 51 单片机 和 STM32 单片机? 》 有时候我们需要查看一些数据手册或参考手册,比如某个引脚对应了什么功能,那么我们可以通过MDK界面快速打开 一般而言,我们在安装对应的

linux嵌入式系统开发小知识分享,嵌入式开发教程哪家好?

China☆狼群 提交于 2021-01-21 10:55:47
嵌入式入门你知多少?对于一些初入门的初学者而言,对嵌入式入门的一些知识有助于后期的学习,从嵌入式技术的应用前景以及到ARM认知到开发板等等。嵌入式企业用人需求在增长。 如今的嵌入式开发大热是ARM+Linux,还有就是Android系统平台,但对于ARM的发展的前景来讲,可谓是一片大好,翻开各个公司的网站,在招聘里面嵌入式工程师占据了大半工程师的职位,但在找工作当中,企业对于单纯的嵌入式开发核心技术,ARM开发来说要多于其他相关技术。如单片机、fpga、DSP工程师等,当然这是因为ARM在微处理器方面占着领军地位。 ARM是硬件还是软件 很难说,ARM 是硬件,LINUX 是软件。ARM 的硬件多半已经模块化了,实际中的 LINUX 的开发工作更多,更耗时。从这方面说 ARM 应该算是软件了。 在找工作中更是这样,就拿真实的例子来讲,联想里和 ARM 最接近的是“BIOS 工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。看到这些,你就会想其实最关键的还是玩转好自己的板子。 嵌入式开发板的重要性 从个人经验来讲最好还是买现成的,在买板子上可以把注意力集中到软件开发上,这样软件开发方面就不必太过担心,对生育硬件方面可以尝试一边调试一边写驱动和程序,当然最好在每次写驱动前就先确认硬件没问题,当然如果自己做就可以更了解底层硬件

嵌入式linux系统开发教程

我是研究僧i 提交于 2021-01-21 09:31:41
在学习嵌入式开发的过程中,尤其是开始入门时,包括各种各样的教程,都是在讲学习linux,很少讲如何利用linux来开发属于自己的嵌入式项目,也就是没有一个全局的概念,简单理解,大概流程如下: 一、建立开发环境 操作系统当然是LInux,或者在win系统下安装虚拟机,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的交叉编译器。 这一步,就相当于在win系统下,要安装一个IDE开发环境,如MDK,IAR等。 二、配置开发主机 主要是配置minicom,也就是串口助手,minicom软件是作为调试嵌入式开发板信息输出的监视器和键盘输入工具,是一个非常方便的工具,我们开发其他嵌入式程序时,其实很多时候也采用串口调试,所以最终原理都是相通的。 配置网络,主要是配置NFS网络文件系统,这个主要是用于下载程序,当然不配置也可以,有很多别的办法。 三、建立引导装在程序的bootloader 常用的bootloader主要有u-boot、vivi等,貌似主流的就是u-boot,这个根据自己具体的芯片进行移植修改。有些芯片是没有内置引导加载程序的,这就需要编写开发板上的Flash的少些程序,当然也可以用windows下的通过JTAG并口和仿真器少些Flash芯片程序,也有linux下的公开源代码的J-Flash程序,所以在设计自己的硬件时,可以预留多种方式。 简单的讲

【安富莱】【RL-TCPnet网络教程】第7章 RL-TCPnet网络协议栈移植(裸机)

自闭症网瘾萝莉.ら 提交于 2021-01-21 03:58:13
第7章 RL-TCPnet网络协议栈移植(裸机) 本章教程为大家讲解RL-TCPnet网络协议栈的裸机移植方式,学习了上个章节讲解的底层驱动接口函数之后,移植就比较容易了,主要是添加库文件、配置文件和驱动文件即可。 本章教程含STM32F407开发板和STM32F429开发板的移植。 7.1 移植前准备工作说明 7.2 STM32F407移植RL-TCPnet协议栈 7.3 STM32F429移植RL-TCPnet协议栈 7.4 总结 7.1 移植前准备工作说明 1、学习本章节前,务必要优先学习第6章的底层驱动讲解。 2、RL-TCPnet只有库,没有源码。库分为两个版本,一个用于调试的版本TCPD_CM3.lib和一个正式版本TCP_CM3.lib,当前的例子统一使用调试版本。另外注意,虽然是CM3版本的,但可同时用于CM3和CM4内核的MCU,因为官方没有专门的CM4内核库。 3、测试时,请将网线接到路由器或者交换机上面测试,因为已经使能了DHCP,可以自动获取IP地址。 而且使能了NetBIOS局域网域名,用户只需在电脑端ping armfly,就可以获得板子的IP地址。 4、如果要使用固定IP进行测试,请看第57章。 5、网口使用的是DM9161/9162(紧挨着9帧串口座的网口),而不是DM9000。 6、找一个简单的工程,最好是跑马灯之类的,越简单越好

【嵌入式秘术】相约榨干SysTick的每一滴汁水

与世无争的帅哥 提交于 2021-01-13 14:57:58
, 【说在前面的话】 相信很多人都遇到过这样的情况:在一个Cortex-M嵌入式应用中要实现一个精确的毫秒级延时并不困难——如果你有RTOS,在任务中使用诸如 os_sleep(<休眠时间>) 之类的函数就可以轻松实现;如果你是裸机,也可以使用每个Cortex-M芯片都默认携带的 SysTick 来实现一个,甚至Arm官方的CMSIS都提供了现成的API,即 SysTick_Config(<中断间隔的时钟周期数>) : static volatile uint32_t s_wMSCounter = 0; extern uint32_t SystemCoreClock; /*! \brief initialise platform before main() */ __attribute__((constructor(101))) void platform_init(void) { SystemCoreClockUpdate(); /* Generate interrupt each 1 ms */ SysTick_Config(SystemCoreClock / 1000); } __attribute__((weak)) void systimer_1ms_handler(void) { /* default systimer 1ms hander * you can

嵌入式秘术:相约榨干SysTick的每一滴汁水

只愿长相守 提交于 2021-01-13 14:03:50
【说在前面的话】 相信很多人都遇到过这样的情况:在一个Cortex-M嵌入式应用中要实现一个精确的毫秒级延时并不困难——如果你有RTOS,在任务中使用诸如 os_sleep(<休眠时间>) 之类的函数就可以轻松实现;如果你是裸机,也可以使用每个Cortex-M芯片都默认携带的 SysTick 来实现一个,甚至Arm官方的CMSIS都提供了现成的API,即 SysTick_Config(<中断间隔的时钟周期数>) : static volatile uint32_t s_wMSCounter = 0; extern uint32_t SystemCoreClock; /*! \brief initialise platform before main() */ __attribute__((constructor(101))) void platform_init(void) { SystemCoreClockUpdate(); /* Generate interrupt each 1 ms */ SysTick_Config(SystemCoreClock / 1000); } __attribute__((weak)) void systimer_1ms_handler(void) { /* default systimer 1ms hander * you can

RT-Thread Nano 移植原理

柔情痞子 提交于 2021-01-04 08:44:20
前言 本篇文档介绍 Nano 移植原理,针对的是不同 MCU 的移植,如 Cortex M,RISC-V,或者是其他 MCU 的移植。 移植过程主要分为两个部分: libcpu 移植与板级移植,在讲解移植之前,本文档对 RT-Thread Nano 的启动流程与移植目录结构先进行说明。 启动流程 RT-Thread 启动流程如下所示,在图中标出颜色的部分需要用户特别注意(黄色表示 libcpu 移植相关的内容,绿色部分表示板级移植相关的内容)。 RT-Thread 启动代码统一入口为 rtthread_startup() ,芯片启动文件在完成必要工作(如初始化时钟、配置中断向量表、初始化堆栈等)后,最终会在程序跳转时,跳转至 RT-Thread 的启动入口中。RT-Thread 的启动流程如下: 全局关中断,初始化与系统相关的硬件。 打印系统版本信息,初始化系统内核对象(如定时器、调度器)。 初始化用户 main 线程(同时会初始化线程栈),在 main 线程中对各类模块依次进行初始化。 初始化软件定时器线程、初始化空闲线程。 启动调度器,系统切换到第一个线程开始运行(如 main 线程),并打开全局中断。 移植目录结构 在 rtthread-nano 源码中,与移植相关的文件位于下图中有颜色标记的路径下(黄色表示 libcpu 移植相关的文件,绿色部分表示板级移植相关的文件):

keil5 C51和MDK版本合并方法+C51库导入方法

帅比萌擦擦* 提交于 2021-01-01 18:00:48
首先下载所需安装包 C51版本下载链接如下: C51 9.60a MDK版本下载链接如下: MDK 5.33 截止目前都是最新版本!!!(2020.12.29) 这里大家需要填写一些信息,提交后就可以下载了。 因为是国外站点所以下载速度比较慢,这里有百度云可以自行下载。 C51: 链接:https://pan.baidu.com/s/1Um4EGM0NtaEgsIrBbl3Xuw 提取码:hg9k MDK: 链接:https://pan.baidu.com/s/13Gtq1KYDtUAlTveVgEiIXA 提取码:5sgb 安装 首先安装C51版本!!! 不要有中文路经!!! 然后把MDK版本安装到相同路径下!!! 你可以像我一样创建一个keil文件夹,然后两个版本的安装路径都选这里。 注册机 大家可以自行搜索注册教程,网上很多,我不再赘述。如果想要注册机安装包,可以私信我。 ------------------------------------假装这里有分割线----------------------------- 很多人还不会向keil里面加入C51的包,这里给大家讲一下。 搜索宏晶科技或者点击下方链接: 宏晶科技官网 可能进去后报危险网页,点击详情,继续访问。 找到STC-ISP软件V6.87S版本下载。 下载后打开,点到keil仿真设置。

STM汇编程序设计

丶灬走出姿态 提交于 2020-12-30 13:59:12
STM汇编程序设计 1.STM32的三种Boot模式 2.基于MDK创建纯汇编语言的STM32工程 创建工程 连接硬件 在线调试 调试代码 查看hex文件 3.用汇编程序完成闪烁LED的程序 1.STM32的三种Boot模式 STM32的启动方式一般以储存器的类型来区分,如下: 内部FLASH启动方式 , 内部SRAM启动方式 , 系统储存器启动方式 。 2.基于MDK创建纯汇编语言的STM32工程 创建工程 新建工程,在选择芯片的时候基于自己使用的硬件选择,我使用的是stm32f103指南者,所以选择如以下: 然后配置环境的时候,做以下勾选: 右键点击source group1添加新文件,由于要使用汇编语言,所以添加.s文件,然后命名和修改文件路径。 连接硬件 用杜邦线将开发板和st-link相连,其中开发板的SWDIO连st-link的SWDIO,开发板的SWCLK连st-link的SWCLK,开发板的GND连st-link的GND,开发板的3v3连st-link的3v3。 在线调试 点击魔术棒,在Debug中选择ST-Link Debugger,然后点击settings 设置端口为SW,点击Flash Download 点击add选择添加 然后就可以编译调试了 调试代码 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT _

【STM32H7教程】第34章 STM32H7的定时器应用之TIM1-TIM17的PWM实现

谁说我不能喝 提交于 2020-12-19 03:13:59
完整教程下载地址: http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第34章 STM32H7的定时器应用之TIM1-TIM17的PWM实现 本章教程为大家讲解定时器应用之TIM1 – TIM17所有定时器的PWM实现。实际项目中用到的地方较多,如电机控制、无源蜂鸣器、显示屏背光等场合。 34.1 初学者重要提示 34.2 定时器PWM驱动设计 34.3 定时器板级支持包(bsp_tim_pwm.c) 34.4 定时器驱动移植和使用 34.5 实验例程设计框架 34.6 实验例程说明(MDK) 34.7 实验例程说明(IAR) 34.8 总结 34.1 初学者重要提示 学习本章节前,务必优先学习第32章,HAL库的几个常用API均作了讲解和举例。 如果配置的GPIO引脚无法正确输出,注意本章2.1小节,保证是定时器复用支持的引脚。 STM32H7支持TIM1-TIM8,TIM12-TIM17共14个定时器,而中间的TIM9,TIM10,TIM11是不存在的,这点要注意。 STM32H7的PWM输出100MHz也是没问题的。输出效果见本章2.3小节。 34.2 定时器PWM的驱动设计 针对STM32H7的定时器PWM功能,专门设置了一个超级函数,用户可以方便的配置TIM1-TIM17所有定时器的PWM输出。 34.2.1