esp8266 SOC方案经过半年沉淀之后再度重启二
2018-08-2014:16:10
以下是输出控制
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
GPIO_OUTPUT_SET(GPIO_ID_PIN(0), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1); //TXD
GPIO_OUTPUT_SET(GPIO_ID_PIN(1), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
GPIO_OUTPUT_SET(GPIO_ID_PIN(2), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3); //RXD
GPIO_OUTPUT_SET(GPIO_ID_PIN(3), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
GPIO_OUTPUT_SET(GPIO_ID_PIN(4), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
GPIO_OUTPUT_SET(GPIO_ID_PIN(5), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA2_U, FUNC_GPIO9);
GPIO_OUTPUT_SET(GPIO_ID_PIN(9), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA3_U, FUNC_GPIO10);
GPIO_OUTPUT_SET(GPIO_ID_PIN(10), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
GPIO_OUTPUT_SET(GPIO_ID_PIN(12), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
GPIO_OUTPUT_SET(GPIO_ID_PIN(13), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
GPIO_OUTPUT_SET(GPIO_ID_PIN(14), level);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
GPIO_OUTPUT_SET(GPIO_ID_PIN(15), level);
gpio16_output_conf();
gpio16_output_set(level);
以下是输入采集
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
result = GPIO_INPUT_GET(GPIO_ID_PIN(0));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1); //TXD
result = GPIO_INPUT_GET(GPIO_ID_PIN(1));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
result = GPIO_INPUT_GET(GPIO_ID_PIN(2));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3); //RXD
result = GPIO_INPUT_GET(GPIO_ID_PIN(3));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
result = GPIO_INPUT_GET(GPIO_ID_PIN(4));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
result = GPIO_INPUT_GET(GPIO_ID_PIN(5));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA2_U, FUNC_GPIO9);
result = GPIO_INPUT_GET(GPIO_ID_PIN(9));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA3_U, FUNC_GPIO10);
result = GPIO_INPUT_GET(GPIO_ID_PIN(10));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
result = GPIO_INPUT_GET(GPIO_ID_PIN(12));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
result = GPIO_INPUT_GET(GPIO_ID_PIN(13));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
result = GPIO_INPUT_GET(GPIO_ID_PIN(14));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
result = GPIO_INPUT_GET(GPIO_ID_PIN(15));
gpio16_input_conf();
result = gpio16_input_get();
2018-07-1719:36:23
继上一次发博之后,今天5分钟搞定SOC开发。
重点在于导入方式
第二种导入方式,针对第三方云平台项目用第一种方法无法导入问题。例如“机智云”生成的项目文件夹。
步骤1:解压从机智云下载的项目并复制到project文件夹内。双击"OpenWorkSpace"批处理文件,自动打开。简化步骤
<ignore_js_op>
步骤2:将项目手动复制进去。下图选中的就是我刚才复制的项目文件夹。
<ignore_js_op>
步骤3:双击打开该文件夹,直到定位到有“MakeFile”的文件夹处。并复制文件路径,到安信可IDE内用。注意路径上有文件名,不能出现中文。
<ignore_js_op>
步骤4:双击打开AiThinker_IDE。“File”->"Import"。图略了。
步骤5:双击下图的“Existing Code as Makefile Project”
<ignore_js_op>
步骤6:将刚才复制的路径直接粘贴到“Existing Code Location”处,省地点“Browse”按钮一层层找了。下面选"Cygwin GCC"。 点“Finish”。
<ignore_js_op>
导入成功,但还有些地方需要修改,否则编译不成功。我是从机智云论坛上看来的,目前我还没整明白。就是双击打开MakeFile,将下面这段程序参数修改下。
APP?=0
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=0
改成
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=6
boot赋值为new,意思就是可以升级
APP 赋值为1,就可以生成user1的bin 文件 如果需要OTA云端升级,就要用到user2文件,只要在这里将APP值赋为2就行了。
SPI_SPEED是下载的速度
SPI_MODE是下载模式
SPI_SIZE_MAP是flash的大小这个可以看上面那个文档详细介绍 赋值为0表示使用的flash是512k
有一处没搞清楚,安信可官方的SPI_SIZE_MAP?=2 机智云论坛上的那位大神是SPI_SIZE_MAP?=4,而下面有位版主说要改成SPI_SIZE_MAP?=6 反正都能编译成功。