之前晕哥遇到的问题现在解决了,问题溯源:KEIL可以使用 GNU 工具链,但是只能使用指定那些工具链,不是所有的GNU工具链都可以用
感谢达克罗德提供的F1C100S裸机编译工程:
F1C100S裸奔framebuffer+PWM+GPIO驱动
F1C100S裸机usb工程(支持hid和cdc类)
我尝试建立Keil下的F1C100S裸机工程,也遇到了和晕哥一样的问题,GNU工具链在链接的时候出错,最后用C#写了一个中间件解决了这个bug,程序依赖 .Net4.0,同时完善各种脚本,实现了编译结束自动生成bin文件以及使用mksuni打补丁操作,最终的bin文件可以直接烧录到spi-flash运行,也可以烧录到dram运行。
C#写的中间件,修改了下传入GCC的参数,然后用新参数调用gcc.exedebug
为方便下载调试,不用每次都短接,默认下载到ram,可以自修改下载脚本为 "flashtospi.bat",下载到spi-flash
工程目录下已包含修复的工具链以及烧录程序,不出意外直接打开工程即可以编译下载。
编译链接下载一气呵成。
Keil裸机工程下载:f1c100s_keil.rar
如有其它bug欢迎改正。
最近编辑记录 香酥肉饼 (2020-02-03 16:24:58)
离线
那个中间件c#开源吗
离线
高手太厉害了
离线
那个中间件c#开源吗
其实很简单,源码在此:
static void Main(string[] args)
{
string a = "";
if (args.Length == 1)
{
if (args[0].StartsWith("@"))
{
string name = args[0].Replace("@", "");
try
{
a = System.IO.File.ReadAllText(name, Encoding.Default);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return;
}
}
}
else
{
for (int i = 0; i < args.Length; i++)
{
a += args[i] + " ";
}
}
a = a.Replace("\"", "");
a = a.Replace("./", "");
a = a.Replace("\r\n", " ");
Process cmd = new Process();
cmd.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory +"arm-none-eabi-gcc.exedebug";
cmd.StartInfo.WorkingDirectory = System.Environment.CurrentDirectory;
cmd.StartInfo.Arguments = a;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
try
{
cmd.Start();
string Text = cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();
cmd.Close();
Console.Write(Text);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
离线
厉害了!
离线
mark,留个爪印。
离线
mark,留个爪印。
离线
厉害了!
离线
厉害了,感谢分享
离线
下载速度太慢,还断线
离线
我重新设定了GCC设定为:...f1c100s_keil\Toolchain\; 然后编译通过
点下载时,出现一个检验失败。
........
compiling sys-copyself.c...
linking...
After Build - User command #1: Toolchain\bin\arm-none-eabi-objcopy -O binary Objects\f1c100s.elf Objects\f1c100s.bin
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
".\Objects\f1c100s.elf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:12
flashtoram.bat
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe spl .\Objects\f1c100s.bin
SPL: checksum check failed
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe -p write 0x80000000 .\Objects\f1c100s.bin
100% [================================================] 42 kB, 207.9 kB/s
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe exec 0x80000000
离线
.....
linking...
After Build - User command #1: Toolchain\bin\arm-none-eabi-objcopy -O binary Objects\f1c100s.elf Objects\f1c100s.bin
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
".\Objects\f1c100s.elf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:03
D:\ARM9\f1c100s_mdk\f1c100s_keil\flashtospi.bat
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe -p spiflash-write 0 .\Objects\f1c100s.bin
usb_bulk_send() ERROR -9: Pipe error
离线
你确认用的是F1C100s 版本, 而不是V3s版本吗?
离线
我重新设定了GCC设定为:...f1c100s_keil\Toolchain\; 然后编译通过
点下载时,出现一个检验失败。
........
compiling sys-copyself.c...
linking...
After Build - User command #1: Toolchain\bin\arm-none-eabi-objcopy -O binary Objects\f1c100s.elf Objects\f1c100s.bin
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
".\Objects\f1c100s.elf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:12
flashtoram.bat
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe spl .\Objects\f1c100s.bin
SPL: checksum check failed
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe -p write 0x80000000 .\Objects\f1c100s.bin
100% [================================================] 42 kB, 207.9 kB/s
D:\ARM9\f1c100s_mdk\f1c100s_keil>.\Tools\sunxi-fel.exe exec 0x80000000
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
检查这条命令的执行情况。
离线
mksunxi.exe 不能运行,好像和这个动态库有关msvcr120d.dll
离线
After Build Run #2 Tools\mksunxi Objects\@L.bin
试过,删除bin后,重新成功生成f1c100s.bin文件。
还有改用 flashtospi 文件,编译通过后,再点下载,能成功下载;重启F1C100s板子,还是进入fel模式(电脑显示驱动)。
离线
@xidaole
1. 手动校验: 读回来和要写入的文件比较, 判断是否写入正确.
2. 写入一个u-boot或者其他验证过的能引导的文件, 判断你的烧录软件是否正常.
离线
@我心飞翔
使用别的文件下载验证过,下载没有问题。
应该是 bin文件“打包”成全志认可以的 bin文件没有成功.
最近编辑记录 xidaole (2020-02-06 11:13:56)
离线
先mark一下。谢谢分享了。
离线
谢谢大佬分享。
离线
奇怪了,我keil是5.24版本, 出现了编译器无法执行的问题?
compiling main.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling printf.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling gpio-f1c100s.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling malloc.c...
离线
keil你选的是 gnu 工具链吗? 默认不是用 armcc.exe 的吗?
离线
我编译工具改为了绝对路径: ..\f1c100s_keil\Toolchain\
然后编译成功。 但对bin文件“打包”失败。
离线
我编译工具改为了绝对路径: ..\f1c100s_keil\Toolchain\
然后编译成功。 但对bin文件“打包”失败。
mksunxi.exe 不存在/路径错误/执行失败/参数错误?
离线
不能用armcc编译吗
离线
mksunxi.exe 不存在/路径错误/执行失败/参数错误?
应该是执行失败,弹出指令窗口,然后没有反应。
离线
下载太慢,能否上传网盘
离线
>>*** Error: Failed to execute 'arm-none-eabi-gcc'
我仔细看了 “KEIL可以使用 GNU 工具链,但是只能使用指定那些工具链,不是所有的GNU工具链都可以用” 的说明,感谢里面的贴图指南。我系统的gcc编译器所在的路径错误了。 (历史的原因,存在了一个垃圾路径,欺骗了keil )
linking...
Objects\start.o: In function `_start':
(.text+0x0): multiple definition of `_start'
./objects/start.o:(.text+0x0): first defined here
Objects\start.o: In function `return_to_fel':
D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/start.S:197: multiple definition of `return_to_fel'
./objects/start.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/start.S:197: first defined here
Objects\memcpy.o: In function `memcpy':
D:\EmbeddedPrjs\f1c100s_keil/SRC/arch/arm32/lib/memcpy.S:12: multiple definition of `memcpy'
./objects/memcpy.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/arch/arm32/lib/memcpy.S:12: first defined here
Objects\memset.o: In function `memset':
D:\EmbeddedPrjs\f1c100s_keil/SRC/arch/arm32/lib/memset.S:11: multiple definition of `memset'
./objects/memset.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/arch/arm32/lib/memset.S:11: first defined here
Objects\sys-uart.o: In function `read32':
D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: multiple definition of `sys_uart_init'
./objects/sys-uart.o:D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: first defined here
Objects\sys-uart.o: In function `read32':
D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: multiple definition of `sys_uart_putc'
./objects/sys-uart.o:D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: first defined here
Objects\sys-clock.o: In function `write32':
D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:42: multiple definition of `sys_clock_init'
./objects/sys-clock.o:D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:42: first defined here
Objects\sys-dram.o: In function `sys_dram_init':
D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/sys-dram.c:485: multiple definition of `sys_dram_init'
./objects/sys-dram.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/sys-dram.c:485: first defined here
Objects\sys-mmu.o: In function `sys_mmu_init':
D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/sys-mmu.c:44: multiple definition of `sys_mmu_init'
./objects/sys-mmu.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/sys-mmu.c:44: first defined here
Objects\sys-spi-flash.o: In function `read32':
D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: multiple definition of `sys_spi_flash_init'
./objects/sys-spi-flash.o:D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: first defined here
Objects\sys-spi-flash.o: In function `read32':
D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: multiple definition of `sys_spi_flash_exit'
./objects/sys-spi-flash.o:D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: first defined here
Objects\sys-spi-flash.o: In function `read32':
D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: multiple definition of `sys_spi_flash_read'
./objects/sys-spi-flash.o:D:\EmbeddedPrjs\f1c100s_keil/./SRC/machine/include/io.h:22: first defined here
Objects\sys-copyself.o: In function `sys_copyself':
D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/sys-copyself.c:51: multiple definition of `sys_copyself'
./objects/sys-copyself.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/machine/sys-copyself.c:51: first defined here
Objects\main.o: In function `boot_main':
D:\EmbeddedPrjs\f1c100s_keil/SRC/main.c:16: multiple definition of `boot_main'
./objects/main.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/main.c:16: first defined here
Objects\main.o: In function `__fatal_error':
D:\EmbeddedPrjs\f1c100s_keil/SRC/main.c:75: multiple definition of `__fatal_error'
./objects/main.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/main.c:75: first defined here
Objects\main.o: In function `__assert_func':
D:\EmbeddedPrjs\f1c100s_keil/SRC/main.c:79: multiple definition of `__assert_func'
./objects/main.o:D:\EmbeddedPrjs\f1c100s_keil/SRC/main.c:79: first defined here
collect2.exe: error: ld returned 1 exit status
".\Objects\f1c100s.elf" - 1 Error(s), 0 Warning(s).
这些Link 的问题有人遇到过吗?
machine/下的xxx.S 文件是明显不存在的,怎么会有这个错误?
最近编辑记录 joyhope (2020-02-07 10:20:19)
离线
手头没板子,只能看你们调试啊。
离线
手头没板子,只能看你们调试啊。
仿真学习呀
离线
我也遇到了
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling fb-f1c100s.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling irq_misc.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
linking...
--- Error: failed to execute 'arm-none-eabi-gcc'
".\Objects\f1c100s.elf" - 1 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01
离线
我也遇到了
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling fb-f1c100s.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
compiling irq_misc.c...
*** Error: Failed to execute 'arm-none-eabi-gcc'
linking...
--- Error: failed to execute 'arm-none-eabi-gcc'
".\Objects\f1c100s.elf" - 1 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01
编译路径没选对,设定到项目下 Toolchain 文件夹
离线
烧录的时候显示 Allwinner USB FEL device not found!,不知道什么原因导致的,烧录RTT的boot和固件没有问题。
D:\2_sourcecode\1_scanner\4_licheePi\others\f1c100s_keil>.\Tools\sunxi-fel.exe spl .\Objects\f1c100s.bin
ERROR: Allwinner USB FEL device not found!
D:\2_sourcecode\1_scanner\4_licheePi\others\f1c100s_keil>.\Tools\sunxi-fel.exe -p write 0x80000000 .\Objects\f1c100s.bin
ERROR: Allwinner USB FEL device not found!
D:\2_sourcecode\1_scanner\4_licheePi\others\f1c100s_keil>.\Tools\sunxi-fel.exe exec 0x80000000
ERROR: Allwinner USB FEL device not found!
离线
1. 可能没有进入FEL 模式(USB烧录模式)
2. 没有装 libusb 驱动
离线
烧录的时候显示 Allwinner USB FEL device not found!,不知道什么原因导致的,烧录RTT的boot和固件没有问题。
D:\2_sourcecode\1_scanner\4_licheePi\others\f1c100s_keil>.\Tools\sunxi-fel.exe spl .\Objects\f1c100s.bin
ERROR: Allwinner USB FEL device not found!
D:\2_sourcecode\1_scanner\4_licheePi\others\f1c100s_keil>.\Tools\sunxi-fel.exe -p write 0x80000000 .\Objects\f1c100s.bin
ERROR: Allwinner USB FEL device not found!
D:\2_sourcecode\1_scanner\4_licheePi\others\f1c100s_keil>.\Tools\sunxi-fel.exe exec 0x80000000
ERROR: Allwinner USB FEL device not found!
解决了,是要短接FLASH 1/4脚,已经安装 zadig-2_3_exe 驱动
离线
谢谢,就是这两个问题导致!
1. 可能没有进入FEL 模式(USB烧录模式)
2. 没有装 libusb 驱动
离线
仔细看了1#帖子,包括参考的晕哥的帖子。重要理解了keil 用gcc编译的问题了。
1. 晕哥指出的Link的问题(我#28楼和这个一样的)
只要用原始的gcc工具肯定是这个问题。核心原因是参数传递的",要改成' 引号。
2. 本帖作者给出了解决方案,而且把修改的完整的sdk放到了项目里面的toolchain里面。
大家如果使用,必须要通过Project -->Manager -->Project Items -->Fold Extention 重新设置工具链的路径。
作者的处理方式可以适合可以工作的版本的gcc,做法是
1. 把原始gcc工具链下的bin\arm-none-eabi-gcc.exe 重名为 arm-none-eabi-gcc.exedebug
2. 把作者发布的项目下的Toolchain\bin\arm-none-eabi-gcc.exe 复制到原始gcc对应的路径下。
作者的 arm-none-eabi-gcc.exe 是一个壳子把参数修改掉,然后重新调用gcc就解决了 Link的错误。
感谢作者给出了这个巧妙的方法,感谢晕哥发现了这个问题。这样的确为开发构建了一个好的环境。
离线
楼上的朋友方便传一个 keil 的工程上来吗?谢谢.
离线
1# 不是已经给了工程下载吗?
离线
1# 不是已经给了工程下载吗?
噢, 那你是用 keil + gcc 编译吗?就按楼上配置?
离线
楼主给的下载是完整的,唯一没有告诉使用的人要配置一下toolchain。(这个在他给的参考资料里面提到了)。 #37 只是解释了作者的工具,同样也适用其他的gcc的工具。
离线
楼主给的下载是完整的,唯一没有告诉使用的人要配置一下toolchain。(这个在他给的参考资料里面提到了)。 #37 只是解释了作者的工具,同样也适用其他的gcc的工具。
get it!
感謝分享宝贵经验.
离线
总结的非常号,赞
仔细看了1#帖子,包括参考的晕哥的帖子。重要理解了keil 用gcc编译的问题了。
1. 晕哥指出的Link的问题(我#28楼和这个一样的)
只要用原始的gcc工具肯定是这个问题。核心原因是参数传递的",要改成' 引号。2. 本帖作者给出了解决方案,而且把修改的完整的sdk放到了项目里面的toolchain里面。
大家如果使用,必须要通过Project -->Manager -->Project Items -->Fold Extention 重新设置工具链的路径。
作者的处理方式可以适合可以工作的版本的gcc,做法是
1. 把原始gcc工具链下的bin\arm-none-eabi-gcc.exe 重名为 arm-none-eabi-gcc.exedebug
2. 把作者发布的项目下的Toolchain\bin\arm-none-eabi-gcc.exe 复制到原始gcc对应的路径下。作者的 arm-none-eabi-gcc.exe 是一个壳子把参数修改掉,然后重新调用gcc就解决了 Link的错误。
感谢作者给出了这个巧妙的方法,感谢晕哥发现了这个问题。这样的确为开发构建了一个好的环境。
离线
为什么下载到荔枝派 的板LCD什么反应都没有
离线
串口也没什么反应
离线
Rebuild target 'Target 1'
compiling main.c...
compiling gpio-f1c100s.c...
compiling clk-f1c100s-pll.c...
compiling fb-f1c100s.c...
compiling dma.c...
compiling printf.c...
compiling malloc.c...
compiling irq_misc.c...
compiling pwm-f1c100s.c...
compiling reset-f1c100s.c...
assembling start.S...
assembling memcpy.S...
assembling memset.S...
compiling usb_cdc.c...
compiling usb_hid.c...
compiling usb_dev.c...
compiling usb_phy.c...
compiling exception.c...
compiling sys-clock.c...
compiling sys-mmu.c...
compiling sys-dram.c...
compiling sys-uart.c...
compiling sys-spi-flash.c...
compiling sys-copyself.c...
linking...
After Build - User command #1: Toolchain\bin\arm-none-eabi-objcopy -O binary Objects\f1c100s.elf Objects\f1c100s.bin
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
".\Objects\f1c100s.elf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:01:11
感觉我编译出来的和楼主的不一样,,,少了boot size
离线
感谢大神!太牛了
离线
在这里设置 ToolChain
离线
在这里设置 ToolChain
这样可以用MDK + JLink单步调试吗?调试器会自动加载gcc编译elf文件吗?
离线
这样可以用MDK + JLink单步调试吗?调试器会自动加载gcc编译elf文件吗?
这样只是可以编译通过,我的无法运行,f1c100s.bin下载到spiflash运行后会回到fel模式。
离线
这样只是可以编译通过,我的无法运行,f1c100s.bin下载到spiflash运行后会回到fel模式。
嗯, 以前我试过MDK调试gcc生成elf文件, 我记得不成功,忘记什么原因了.
离线
After Build Run #2 Tools\mksunxi Objects\@L.bin
试过,删除bin后,重新成功生成f1c100s.bin文件。还有改用 flashtospi 文件,编译通过后,再点下载,能成功下载;重启F1C100s板子,还是进入fel模式(电脑显示驱动)。
下载msvcr120d.dll放到Tools里面,再编译,重新生成的f1c100s.bin下载到spiflash就能正常运行了。msvcr120d.zip
离线
下载msvcr120d.dll放到Tools里面,,确实可以运行了!!感谢忙着折腾! 这是什么原因呢
离线
离线
感谢分享!
离线
厉害!刚入手板子,学习中
离线
打算支持摄像头吗?TINY200第二版直接预留好了DVP接口
歪朵拉开源硬件: https://widora.cn
淘宝: https://widora.taobao.com/
离线
eXeScope.exe 或 CFF Explorer.exe 等软件可以分析 exe 文件的依赖库, 把对应的库拷到同一目录, 一般都可以。
mksunxi.exe 需要用到msvcr120d.dll这个库,keil调用mksunxi出错后没有任何提示... 我通过cmd来运行mksunxi.exe就弹出一个错误框,提示缺少这个文件。
又学到一招:eXeScope.exe 或 CFF Explorer.exe 等软件可以分析 exe 文件的依赖库,向晕哥学习。
离线
mksunxi.exe 需要用到msvcr120d.dll这个库,keil调用mksunxi出错后没有任何提示... 我通过cmd来运行mksunxi.exe就弹出一个错误框,提示缺少这个文件。
又学到一招:eXeScope.exe 或 CFF Explorer.exe 等软件可以分析 exe 文件的依赖库,向晕哥学习。
也是可以静态链接的, 不需要依赖msvcr120d.dll, msvc编译的时候可以配置。
Qt mingw 的静态链接: https://whycan.cn/t_2395.html#p18309
离线
下载了楼主的工程文件,修改好ToolChain路径后编译,出现如下错误,请问大神这是什么原因??
Rebuild target 'Target 1'
compiling dma.c...
Error: arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
Error: arm-none-eabi-gcc.exedebug: error: (x86)/Keil/ARM/CMSIS/Include: No such file or directory
compiling main.c...
Error: arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
Error: arm-none-eabi-gcc.exedebug: error: (x86)/Keil/ARM/CMSIS/Include: No such file or directory
...
".\Objects\f1c100s.elf" - 42 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:07
我的开发环境是WIN7 64位系统,Keil安装在D:\Program Files (x86)\Keil中,版本是5.24.2
离线
无法下载,10%左右挂死 :(:(
离线
无法下载,10%左右挂死
:(:(
试一试用手机热点。
离线
下载了楼主的工程文件,修改好ToolChain路径后编译,出现如下错误,请问大神这是什么原因??
Rebuild target 'Target 1'
compiling dma.c...
Error: arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
Error: arm-none-eabi-gcc.exedebug: error: (x86)/Keil/ARM/CMSIS/Include: No such file or directory
compiling main.c...
Error: arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
Error: arm-none-eabi-gcc.exedebug: error: (x86)/Keil/ARM/CMSIS/Include: No such file or directory
...
".\Objects\f1c100s.elf" - 42 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:07
我的开发环境是WIN7 64位系统,Keil安装在D:\Program Files (x86)\Keil中,版本是5.24.2
感觉路径配置有问题。
离线
感謝分享宝贵经验
离线
留个爪印,多谢分享
离线
下载速度好慢,等不急啦,是不是纯KEIL能编译的?
离线
厉害了,感谢分享
离线
弓虽,超级单片机出现了
离线
感谢大神!
离线
为什么都下载不了
离线
为什么都下载不了
哪个文件?我看都可以下载哦
离线
裸奔,当单片机使用啊
离线
F1C100S裸機:SPI1從模式無法正常工作。
嗨,大家好,
我對F1C100S的SPI1有問題。
當我將SPI1與SLAVE模式一起使用時。
當我向SPI1_TXD_REG寫1個字(4字節)並從寄存器SPI1_FSR_REG中讀回TX_FIFO中的數字字節時。
SPI1_FSR_REG的返回值:0x20000(僅2個字節).// TX_FIFO中期望有4個字節
但是,當我切換到MASTER模式時,SPI1_FSR_REG的返回值是正確的:0x40000(4個字節)。
您能告訴我程序中的錯誤嗎?
非常感謝你。
main.c
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#define CCU_BASE (0x01C20000)
#define PIO_BASE (0x01C20800)
#define SPI1_BASE (0x01C06000)
#define DMA_BASE (0x01C02000)
#define TIMER_BASE (0x01C20C00)
/* PIO: PA(0), PB(1), PC(2), PD(3), PE(4), PF(5) */
#define Pn_CFG0(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x00)) // Port n Configure Register 0 (n=0~5)
#define Pn_CFG1(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x04)) // Port n Configure Register 1 (n=0~5)
#define Pn_CFG2(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x08)) // Port n Configure Register 2 (n=0~5)
#define Pn_CFG3(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x0C)) // Port n Configure Register 3 (n=0~5)
#define Pn_DATA(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x10)) // Port n Data Register (n=0~5)
#define Pn_DRV0(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x14)) // Port n Multi-Driving Register 0 (n=0~5)
#define Pn_DRV1(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x18)) // Port n Multi-Driving Register 1 (n=0~5)
#define Pn_PUL0(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x1C)) // Port n Pull Register 0 (n=0~5)
#define Pn_PUL1(n) (*(volatile uint32_t *)(PIO_BASE + n*0x24 + 0x20)) // Port n Pull Register 1
#define Pn_INT_CFG0(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0x0)) // PIO Interrupt Configure Register 0 (n=0~2) PD(0), PE(1), PF(2)
#define Pn_INT_CFG1(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0x4)) // PIO Interrupt Configure Register 1 (n=0~2) PD(0), PE(1), PF(2)
#define Pn_INT_CFG2(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0x8)) // PIO Interrupt Configure Register 2 (n=0~2) PD(0), PE(1), PF(2)
#define Pn_INT_CFG3(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0xC)) // PIO Interrupt Configure Register 3 (n=0~2) PD(0), PE(1), PF(2)
#define Pn_INT_CTRL(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0x10)) // PIO Interrupt Control Register (n=0~2) PD(0), PE(1), PF(2)
#define Pn_INT_STA(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0x14)) // PIO Interrupt Status Register (n=0~2) PD(0), PE(1), PF(2)
#define Pn_INT_DEB(n) (*(volatile uint32_t *)(PIO_BASE + 0x200 + n*0x20 + 0x18)) // PIO Interrupt Debounce Register (n=0~2) PD(0), PE(1), PF(2)
/* CCU */
#define BUS_CLK_GATING_REG0 (*(volatile uint32_t *)(CCU_BASE + 0x0060))
#define BUS_CLK_GATING_REG1 (*(volatile uint32_t *)(CCU_BASE + 0x0064))
#define BUS_CLK_GATING_REG2 (*(volatile uint32_t *)(CCU_BASE + 0x0068))
#define BUS_SOFT_RST_REG0 (*(volatile uint32_t *)(CCU_BASE + 0x02C0))
#define BUS_SOFT_RST_REG1 (*(volatile uint32_t *)(CCU_BASE + 0x02C4))
#define BUS_SOFT_RST_REG2 (*(volatile uint32_t *)(CCU_BASE + 0x02D0))
/* SPI1 */
#define SPI1_GCR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0004))
#define SPI1_TCR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0008))
#define SPI1_IER_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0010))
#define SPI1_ISR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0014))
#define SPI1_FCR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0018))
#define SPI1_FSR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x001C))
#define SPI1_WCR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0020))
#define SPI1_CCR_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0024))
#define SPI1_MBC_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0030))
#define SPI1_MTC_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0034))
#define SPI1_BCC_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0038))
#define SPI1_TXD_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0200))
#define SPI1_RXD_REG (*(volatile uint32_t *)(SPI1_BASE + 0x0300))
/* WDOG */
#define WDOG_IRQ_EN_REG (*(volatile uint32_t *)(TIMER_BASE + 0x00A0))
#define WDOG_IRQ_STA_REG (*(volatile uint32_t *)(TIMER_BASE + 0x00A4))
#define WDOG_CTRL_REG (*(volatile uint32_t *)(TIMER_BASE + 0x00B0))
#define WDOG_CFG_REG (*(volatile uint32_t *)(TIMER_BASE + 0x00B4))
#define WDOG_MODE_REG (*(volatile uint32_t *)(TIMER_BASE + 0x00B8))
extern void sys_uart_putc(char c);
int boot_main(int argc, char **argv) {
/* Do initial mem pool */
do_init_mem_pool();
do_init_dma_pool();
printf("Start main while!\n\r");
//usb_device_init(USB_TYPE_USB_COM);
volatile int i;
for(i = 0;i <1000;i++)
{
;;;
}
usb_reg_debugdump();//0x53555741
//////////////////////////////////////////////////////
// Config SPI1 Interface Pin
Pn_CFG0(0) = 0x6666;
// Config SPI1 reset rule
BUS_SOFT_RST_REG0 |= (1 << 21);
// Config SPI1 CLK gate
BUS_CLK_GATING_REG0 |= (1 << 21);
// Reset SPI1, SPI1 Slave Mode, Enable SPI1
SPI1_GCR_REG = (1 << 31) | (0 << 1) | (1 << 0);
// Wait SPI1 reset complete
while(SPI1_GCR_REG & (1<<31));
// SS_LEVEL no active level: high, SS active level: low, CPOL=0, CPHA=1
SPI1_TCR_REG = (1<<7)|(1<<2)|(0<<1)|(1<<0);
// TX FIFO reset, RX FIFO reset
SPI1_FCR_REG = (1<<31) | (1<<15);
// Wait TX FIFO reset complete
while(SPI1_FCR_REG & (1<<31)) asm("nop");
// Wait RX FIFO reset complete
while(SPI1_FCR_REG & (1<<15)) asm("nop");
printf("SPI1_FSR_REG:0x%X\n", SPI1_FSR_REG);
SPI1_TXD_REG = 0x01;
printf("SPI1_FSR_REG:0x%X\n", SPI1_FSR_REG);
// Output: 0x20000 with SPI1_GCR_REG = (1 << 31) | (0 << 1) | (1 << 0): Slave Mode
// Output: 0x40000 with SPI1_GCR_REG = (1 << 31) | (1 << 1) | (1 << 0): Master Mode
//SPI1_FSR_REG[23:16]
//TX FIFO Counter
//These bits indicate the number of words in TX FIFO
//0: 0 byte in TX FIFO
//1: 1 byte in TX FIFO
//…
//64: 64 bytes in TX FIFO
//Other: /
/////////////////////////////////////////////////
printf("WDOG reset system\n");
WDOG_CFG_REG = 0x01; // Reset whole sytem
WDOG_MODE_REG = 0x01; // Start WDOG
while(1)
{
}
return 0;
}
void __fatal_error(const char *msg) {
while (1);
}
#ifndef NDEBUG
void __assert_func(const char *file, int line, const char *func, const char *expr) {
//printf("Assertion '%s' failed, at file %s:%d\n", expr, file, line);
__fatal_error("Assertion failed");
}
#endif
离线
烧录到dram运行
这个操作好像并没有起效,第一条命令就失败了
离线
先插个印记
离线
留下一个脚印
离线
厉害了~之前只是用STM32玩过
离线
学习了一下 还是没玩通 再找差别
离线
我最近想用F1C100S开发一个存储视频的产品,谢谢分享!
离线
要是能用jlink调试就更好了
离线
厉害,如果能将DVP接口调通,就好了1
离线
感谢楼主填坑,下载看看
离线
谢谢分享,跟着大佬多多学习,刚入手V3S,还没研究明白
离线
谢谢分享,跟着大佬多多学习,刚入手NANO
离线
真是良心贴,以前每次编译完了都忘记打补丁,有了这个神器就不用那么麻烦了,大大的加快了进度。
离线
这个GNU...stdio.h里面的功能函数全部要自己实现?还有很多标准函数都是不支持的?移植了一段视觉处理相关算法,纯算法,与硬件无关的也报一堆错,math里的函数也不能用,后来才发现要在设置里启用math库,启用后又报里面的函数__errno未定义,懵了
最近编辑记录 ntmusic (2020-04-30 09:44:43)
离线
谢谢分享,刚入手学习
离线
正是我需要的 感谢
离线
谢谢共享;
好啊
离线
有搞定摄像头裸机驱动的吗?求赐教!
离线
你好,
我想从USB读取RTL-SDR设备,有人知道Keil是否可能?
离线
牛,先占个位置。慢慢消化。
离线
跟着大佬多多学习,刚入手NANO
离线
用了楼主的中间件,怎么跳出这些错误了?
离线
我的keil版本里是没有这些文件。楼主的中间件跟keil的版本挂钩?
离线
发现GNU工具链在链接时候的出错是由于f1c100s.ld文件里的路径有问题,在Objects前加./ 就可以链接成功了
离线
厉害了,这个移植成功可比单片机强多了,可以直接视频解码,稳定不?
离线
先mark一下。谢谢分享了
离线
有搞定摄像头裸机驱动的吗?求赐教!
不难,裸机摄像头
离线
mdk工程?设备型号选什么,有没有提供工程
离线
目前裸机的驱动主要是缺音频这块,不知道现在有没有?
离线
想入坑,以前玩的单片机,没玩过linux,你们都裸奔还是跑linux
离线
第N回下载了,又把之前的搞废了.争取这次写个"Hello world"出来>_>
离线
相当优秀!楼主可以试试rt thread
离线
赞,又可以用熟悉的keil折腾了,谢谢楼主!
离线
准备用Keil跑一下F1C100s
离线
大佬能不能放一个linux下的版本
离线
想用来做一个视频解码,简单真不想跑系统,裸机就完全够了
离线
这个芯片基本用来做视频解码的,如果能跑起这个就厉害了
离线
为什么我的F1C100S没有驱动?
离线
为什么我的F1C100S没有驱动?
你想怎么驱动?
离线
太厉害了,楼主,小白刚入门感觉一头雾水,先尝试点亮屏幕再说吧
离线
不错 mark 一直想F1C100S在kei下使用
离线
按照楼主的说明,一步步调试好了。非常感谢。
离线
看起来不错 手里有个荔枝派的那个 板子 想玩 玩不动 现在又来看看
离线
下载了 工程 编译不过去 一个错误 --- Error: failed to execute 'arm-none-eabi-gcc'
现在可以了
Build started: Project: f1c100s
Build target 'Target 1'
compiling main.c...
compiling dma.c...
compiling clk-f1c100s-pll.c...
compiling malloc.c...
compiling printf.c...
compiling fb-f1c100s.c...
compiling gpio-f1c100s.c...
compiling irq_misc.c...
compiling pwm-f1c100s.c...
compiling reset-f1c100s.c...
compiling usb_cdc.c...
compiling usb_hid.c...
assembling start.S...
compiling usb_dev.c...
assembling memcpy.S...
assembling memset.S...
compiling usb_phy.c...
compiling exception.c...
compiling sys-clock.c...
compiling sys-mmu.c...
compiling sys-spi-flash.c...
compiling sys-dram.c...
compiling sys-uart.c...
compiling sys-copyself.c...
linking...
After Build - User command #1: Toolchain\bin\arm-none-eabi-objcopy -O binary Objects\f1c100s.elf Objects\f1c100s.bin
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
".\Objects\f1c100s.elf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:04
下载到板子 用USB 口嘛?
最近编辑记录 AYUMI7 (2020-07-16 16:05:01)
离线
初次接触全志F1C100S,不想倒腾LINUX,看看楼主的模板。哈哈
离线
unknow device ,不能识别。。。
离线
学习学习咋用这个片子。
离线
给大佬递茶,最近在研究全志的f1c芯片,先收藏慢慢观摩
离线
非常厉害,我也准备入手一块板子玩玩
离线
Keil最后运行 .\Tools\sunxi-fel.exe exec 0x80000000 看着都正常,就是板子没反应,还是在SPL里。我用的是没有Flash的 lichee nano,是不是要先烧个bootloader啥的?
离线
最近入手了F1C200S的板子,感谢楼主的分享,争取早日向楼主看齐。
离线
Project -->Manager -->Project Items -->Fold Extention,在该界面右下角的Folder里面输入 .\Toolchain\ 这样随便把工程复制到任何路径都不用重新设置编译路径了
离线
有没有vscode 版本的,公司禁止使用盗版Keil 防止收到律师涵 之前的to_ascii(\0x41\0x44)已中招
离线
之前荔枝派一直动不起来,就是想要这样的工程,下载下来研究一下
离线
F1C100S这个片子其他接口的程序有吗?
离线
大佬厉害,这是祼跑的吧
离线
Project -->Manager -->Project Items -->Fold Extention,在该界面右下角的Folder里面输入 .\Toolchain\ 这样随便把工程复制到任何路径都不用重新设置编译路径了
嗯,看了老一会回复半天没理解啥意思,这么一设就什么问题没了。。。
离线
谢谢分享!之前荔枝派一直动不起来,就是想要这样的工程,下载下来研究一下
离线
下再进去没有任何反应,不知道咋回事
离线
谢谢分享!之前荔枝派一直动不起来,就是想要这样的工程,下载下来研究一下
离线
Project -->Manager -->Project Items -->Fold Extention,在该界面右下角的Folder里面输入 .\Toolchain\ 这样随便把工程复制到任何路径都不用重新设置编译路径了
用这个方法编译成功了!
离线
xidaole 说:After Build Run #2 Tools\mksunxi Objects\@L.bin
试过,删除bin后,重新成功生成f1c100s.bin文件。还有改用 flashtospi 文件,编译通过后,再点下载,能成功下载;重启F1C100s板子,还是进入fel模式(电脑显示驱动)。
下载msvcr120d.dll放到Tools里面,再编译,重新生成的f1c100s.bin下载到spiflash就能正常运行了。msvcr120d.zip
刚试了下,看到了bootloader size=1800,应该是可以了,明天下载试下,谢谢
离线
感谢分享,后续有时间可以把中间件用python来写
离线
谢谢楼主,太感谢了
离线
刚入门,有太多东西不懂了,谢谢分享
离线
编译和下载都没问题就是没工作。
离线
Rebuild target 'Target 1'
compiling main.c...
arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
arm-none-eabi-gcc.exedebug: error: (x86)/Keil_v4/ARM/CMSIS/Include: No such file or directory
compiling dma.c...
arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
arm-none-eabi-gcc.exedebug: error: (x86)/Keil_v4/ARM/CMSIS/Include: No such file or directory
compiling malloc.c...
arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
arm-none-eabi-gcc.exedebug: error: (x86)/Keil_v4/ARM/CMSIS/Include: No such file or directory
compiling printf.c...
arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
arm-none-eabi-gcc.exedebug: error: (x86)/Keil_v4/ARM/CMSIS/Include: No such file or directory
compiling clk-f1c100s-pll.c...
arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
arm-none-eabi-gcc.exedebug: error: (x86)/Keil_v4/ARM/CMSIS/Include: No such file or directory
compiling fb-f1c100s.c...
arm-none-eabi-gcc.exedebug: error: Files: No such file or directory
arm-none-eabi-gcc.exedebug: error: (x86)/Keil_v4/ARM/CMSIS/Include: No such file or directory
compiling gpio-f1c100s.c...
大佬这个什么问题
离线
学习学习,学习学习。荔枝派终于获得新生啦。
离线
离线
这个片子现在好买吗,想驱动一个480*800的RGB屏幕的,找了挺久,就这个片子性价比高
离线
spi外设什么的有开发吗,想裸机用
离线
刚入手一个荔枝派,mark一下,学习大神的操作
离线
不知道如何下手,路过继续学习
离线
离线
我觉得非常奇怪,这么多人都用了ARM9以上的芯片了,却还在用Keil这种这么弱的开发环境?!
而且Keil还是付费软件!还要去破解!行业上还有那么多非付费且更好用的开发工具!
希望能推荐几个不错的开发工具
离线
用MDK自带编译有好多错误啊。
离线
离线
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil>.\Tools\sunxi-fel.exe spl .\Objects\f1c100s.bin
U-Boot header CRC mismatch: expected 3104a0e1, got ae275010
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil>.\Tools\sunxi-fel.exe -p write 0x80000000 .\Objects\f1c100s.bin
100% [================================================] 42 kB, 352.6 kB/s
C:\Work\myWork\F1C200S\f1c100s_keil\f1c100s_keil>.\Tools\sunxi-fel.exe exec 0x80000000
能不能帮我看下是什么问题
离线
离线
请问楼主,demo的USB是用的device mode 还是 host mode
离线
这个驱动能用RL USB.吗
离线
可以支持USB 主机和从机吗
离线
F1C200S应该也适用吧!
离线
这个支持spi nand flash吗
离线
楼主有没有在RTT上完成USB的驱动呢?
离线
请教一下大神,哪里有mdk,iar,gcc的裸机固件库下载,这里好像挺专业的,资料和大神都蛮多的
离线
这里的资料感觉都比他官网还多,不知道咋回事,以后经常来这学习一下
离线
你好,怎么烧录下载?有没有相关的帖子?
离线
这个工程很适合学习
离线
跑linux一直有问题,我来看看裸机能不能把问题解决掉
离线
有没有usb大容量存储设备的例子呀,sd卡作为储存媒介的
离线
看了好几遍帖子,我这现在能下载,能编译,但是就是没反应,下载到SPI ,RAM里面都一个样子,哪位大佬能不能指点一下 :rolleyes
离线
Keil最后运行 .\Tools\sunxi-fel.exe exec 0x80000000 看着都正常,就是板子没反应,还是在SPL里。我用的是没有Flash的 lichee nano,是不是要先烧个bootloader啥的?
大佬最后问题解决了没有,我这现在也是没反应
离线
@忙着折腾
我也遇到这问题了,但是把msvcr120d.dll放到Tools里面,把bin删除后重新编译下载到spi里面还是不能运行,上电直接进入Fel模式
离线
感谢感谢,头疼了好久,SPL头加进来就是不能在flash里运行,ram里可以运行,还没弄明白brom到底怎么验证的
离线
下载你的工程后,编译遇到这个问题,是哪里出错了吗
离线
解决了,这个gcc 编译路径 要重新选择,看图
离线
要记得使用msvcr120d.dll,否者下载没有反应,很奇怪
离线
能支持USB-HOST不
离线
collect2.exe: error: ld returned 1 exit status
After Build - User command #1: Toolchain\bin\arm-none-eabi-objcopy -O binary Objects\f1c100s.elf Objects\f1c100s.bin
Toolchain\bin\arm-none-eabi-objcopy: 'Objects\f1c100s.elf': No such file
After Build - User command #2: Tools\mksunxi Objects\f1c100s.bin
Open bootloader error
这个是什么原因,有知道的嘛?
离线
按照这样设置之后编译出现这样的错误
collect2.exe: error: ld returned 1 exit status
有没有大佬知道是什么原因导致的
离线
@忙着折腾
我也遇到这问题了,但是把msvcr120d.dll放到Tools里面,把bin删除后重新编译下载到spi里面还是不能运行,上电直接进入Fel模式
大佬,我现在也是这个问题,你有解决嘛?现在不知道是不是flash坏掉了导致的上电进入fel还是其他原因,可是我烧写到ram中io口也没有输出
离线
@hhy
问题已经解决,把在网上下载的msvcr120d.dll文件替换成论坛提供的dll文件就可以解决问题,但是具体为什么还不清楚
离线
1、下载到ram,正常下载,能运行
2、下载到flash,下载成功,无法运行
请问flash下载怎么解决
离线
f1c100s的头部信息校验的方式和参数含义有朋友了解的吗?资料也找不到,写了一个简单的点灯程序,用网上的mksunxi工具打包成.bin文件,用winhex查看,头部信息也包含了eGON.BT0和SPL2,就是不知道它校验的四字节数据到底对不对。下载到flash里,一上电就进到fel模式了,flash也是好的,不知道问题到底出在了哪,程序下载到flash中,读出来也是对的,现在怀疑是头部信息校验出了问题。
离线
@香酥肉饼
初学者 请问 这个C# 如何编译?
离线
@香酥肉饼
就是 那个c#语言 在哪编译 用什么编译 如何生成可用的gcc 可用的文档
离线
看了好几遍帖子,我这现在能下载,能编译,但是就是没反应,下载到SPI ,RAM里面都一个样子,哪位大佬能不能指点一下 :rolleyes
大佬有解决吗 我的也是没反应 串口 IO 啥的都没变化啊 是不是需要下载BOOTLODER啥的???
离线
@右半边天天晴
asm volatile (
"b Entry \n" //Jump to Entry
".long 0x4E4F4765\n" //eGON
".long 0x3054422E\n" //.BT0
".long 0x00000000\n" //checksum for boot must be calculated !
".long 0x00006000\n" //length for boot 0x6000 24 kB
".long 0x00000000\n"
".long 0x00000000\n"
".long 0x00000000\n"
);
or
_start:
//Boot head information for BROM
.long 0xea000006 //Jump to Entry
.byte 'e', 'G', 'O', 'N', '.', 'E', 'X', 'E'
.long 0, __program_size //checksum for boot must be calculated !, length for boot
.byte 'E', 'X', 'E', 'C' //
.long 0, 0
or
;/* Boot head information for BROM booting */
BROM_BHI B Vectors
DCB "eGON.BT0"
DCD 0, ||Load$$LR$$FLASH_SPL$$Length||
DCB 'S', 'P', 'L', 2
DCD 0, 0
DCD 0, 0, 0, 0, 0, 0, 0, 0
;/* 0x40 - boot params, 0x54 - entry, 0x58 - fel boot type, 0x5c - dram size */
DCD 0, 0, 0, 0, 0, 0, 0, 0
离线
买了一块F1C100S的串口屏,准备在它上面上跑一下试试:P
离线
按照大家的指引,成功编译了楼主提供的裸机工程。但当我导入了LVGL的文件后,出现了一堆和LVGL文件相关的编译错误:
----------------------------------------------
....\f1c100s_keil2/LVGL/GUI/lvgl/src/draw/lv_img_decoder.c:331: undefined reference to `strcmp'
----------------------------------------------
该错误是没有找到<string.h>文件,但该头文件应该已经存在了,因为f1c100s_keil2工程的main里,也调用了该文件。
-- 不知道这个问题如何解决。。。
另外,LVGL的移植的过程,我参考了这个视频:https://www.bilibili.com/video/BV1CG4y157Px/?spm_id_from=333.337.search-card.all.click
离线
大佬我只想测试f1c100s开发板驱动LCD 50pin的显示屏,只熟悉stm32,完全不会这种芯片不知道怎么弄,入门的资料都找不到
离线
GUN工程 怎么才能右键goto define..
离线
这个驱动屏,做界面资源不太够用吧?
离线
@joyhope
I have the same problem ,
can you help me?
离线
你好,请问这个可以用jlink调试吗?
离线
这样虽然可以,但是调试速度会不会太慢了
离线
为啥烧dram的命令报错。。
离线
离线
为啥烧dram的命令报错。。
离线
@joyhope #28楼的方法太好了,我类似的问题终于按此方法解决了,谢谢
离线