我使用RTOS_SDK在ESP8266进行开发,我是用的是26M晶振的模块,所以需要重新配置波特率。在user_main中直接调用UART_ParamConfig()函数,编译器提示未定义。直接在user_main中调用UART_SetBaudrate(UART0,BIT_RATE_115200),反而没有提示函数未定义,但是提示宏UART0和BIT_RATE_115200没有定义,也就是说uart.h没有被包含。尝试重新编译获得libdriver.a,发现编译的结果在driver文件夹下,拷贝到lib文件夹下,没有在init_main中调用uart_init_new,我以为程序会自动调用初始化函数,没有结果。
我对gcc编译过程不是很了解,makefile也只能看个一知半解。所以我更想知道RTOS_SDK的结构是什么样的。
我的理解是源文件都已经编译成了.a库文件,通过include中的头文件进行调用。我理解的对吗?如果是这样那么libdriver.a对应的头文件是哪些?
文档中提过lib_drive文件夹是一个用来生成libdriver.a的案例,如果我把它下面的文件放在app文件夹下,编译的时候drive文件夹下的源文件是否参与编译?是否影响bin文件的内容?
程序是否有初始化的函数?例如是否会在初始化过程中初始化UART0?这个过程是在user_init之前还是在user_init之后?
如果我将driver和对应的inclue文件夹放在user文件夹下,并在user_main中包含头文件,那么user_main就可以调用driver中源文件的函数了,但这样是否造成了重复编译初始化函数造成存储空间的浪费?如果不这样,我应该怎么直接调用libdriver.a中的初始化函数?
使用RTOS_SDK,我该在哪里初始化我的串口UART0?
Re: 使用RTOS_SDK,我该在哪里初始化我的串口UART0?
Postby Her Mary » Tue Sep 19, 2017 4:09 pm
这里有个工程示例https://github.com/espressif/ESP8266_RTOS_SDK/tree/master/examples/project_template
应该就是让你把需要的driver 放进去吧。
你可以打开 makefile 文件,看看是只编译了 user 文件夹,还是也编译了 driver 文件夹。
应该就是让你把需要的driver 放进去吧。
你可以打开 makefile 文件,看看是只编译了 user 文件夹,还是也编译了 driver 文件夹。
Who is online
Users browsing this forum: No registered users and 63 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.