项目简介
这是一个基于C语言的嵌入式系统项目,旨在为ROS提供底层支持。项目基于特定硬件平台(如MK60D10微控制器)开发,涵盖硬件初始化、通信模块驱动、协议处理、内存管理等多方面,可实现对硬件的控制和通信功能。
项目的主要特性和功能
- 硬件初始化:对GPIO、UART、SPI、I2C、PWM等硬件模块进行初始化,为后续通信和控制奠定基础。
- 通信模块驱动:提供UART、SPI、I2C等通信模块驱动,支持数据收发,具备中断和DMA功能。
- 协议处理:实现协议层处理,包括协议初始化、注册、数据收发、路由设置等,支持广播和正常数据包发送。
- 内存管理:包含内存分配和释放函数,用于管理项目内存资源。
- 错误处理和调试:提供错误处理与调试功能,如打印错误信息、检查内存使用情况等。
- 硬件通信:通过蓝牙、UART等硬件通信模块与外部设备进行数据收发。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件。
选择编译器
本项目支持armcc和armgcc两种编译器。
使用armcc编译工程
armcc可借助ARM的MDK,下载keil_5,进入MDK - ARM目录,用keil_5直接打开里面的工程配置文件即可使用。
使用armgcc编译工程
- Linux平台
- 下载gcc - arm - none - eabi
- 命令行输入
sudo apt-get install gcc-arm-none-eabi
,ubuntu16.04和ubuntu18.04可自动安装,默认版本号不同。 - 也可添加新的PPA进行安装,参考官方网站。
- 还能安装指定版本,从下载官方网站下载源码包后解压,如解压到
/usr/lib/gcc
,添加环境变量vi /etc/profile
,在文件最后添加export PATH=$PATH:/usr/lib/gcc/gcc-arm-none-eabi-4_9-2014q4/bin
,使能环境变量source /etc/profile
(此命令只在当前终端有效,若需在其它终端使用,需重启计算机)。
- 命令行输入
- 查看是否安装成功:使用查询版本号指令
arm-none-eabi-gcc -v
。 - 添加ARMGCC_DIR环境变量:
gedit ~/.bashrc
,在末尾添加export ARMGCC_DIR=/usr
(根据gcc - arm - none - eabi
所在安装目录填写,自动安装一般写/usr
,下载安装包安装则写相应位置),生效环境变量source ~/.bashrc
。 - 下载JLink:打开 SERGGER官网 ,下拉找到J - Link Software and Documentation Pack,点击右边 + 号,展开下载列表,选择对应的Linux版本。
- 安装JLink:选择一个安装位置安装deb安装包,安装完成后添加环境变量
gedit ~/.bashrc
,在末尾添加安装位置export JLINK_PATH=/opt/SEGGER/JLink_V644h
,生效环境变量source ~/.bashrc
。 - 编译和下载:进入工程目录的cmake文件夹下,打开命令行执行
sh build.sh
,成功后生成hex文件,将K60板插上Jlink执行sh flash.sh
进行下载。
- 下载gcc - arm - none - eabi
后续步骤
- 硬件连接:按项目需求连接微控制器、传感器、电机等硬件。
- 测试和运行:在硬件上测试项目功能,确保通信和控制模块正常工作。
- 修改和扩展:根据项目需求修改代码,如修改通信协议、添加新硬件驱动等。
- 调试和优化:项目运行中按需调试优化,提升性能和稳定性。
注意:因项目使用特定硬件平台,安装和使用时需确保硬件和工具链与项目需求匹配。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】