WhyCan Forum(哇酷论坛)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2020-02-03 16:17:43

香酥肉饼
会员
注册时间: 2020-01-10
累计积分: 4

F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

之前晕哥遇到的问题现在解决了,问题溯源: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
TIM截图20200203160923.jpg
为方便下载调试,不用每次都短接,默认下载到ram,可以自修改下载脚本为 "flashtospi.bat",下载到spi-flash
下载脚本修改位置
工程目录下已包含修复的工具链以及烧录程序,不出意外直接打开工程即可以编译下载。
编译链接下载一气呵成。
1.jpg
Keil裸机工程下载:f1c100s_keil.rar
如有其它bug欢迎改正。

最近编辑记录 香酥肉饼 (2020-02-03 16:24:58)

离线

#2 2020-02-03 17:02:24

小智
会员
注册时间: 2019-10-16
累计积分: 47

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

那个中间件c#开源吗

离线

#3 2020-02-03 17:47:58

忘记岁月
会员
注册时间: 2020-02-02
累计积分: 1

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

高手太厉害了

离线

#4 2020-02-03 18:16:18

香酥肉饼
会员
注册时间: 2020-01-10
累计积分: 4

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

小智 说:

那个中间件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());
	}
}

离线

#5 2020-02-03 20:33:35

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 229

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

厉害了!

离线

#6 2020-02-03 23:53:15

伍零壹
会员
注册时间: 2019-12-16
累计积分: 51

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

mark,留个爪印。

离线

#7 2020-02-04 12:59:01

sea18c
会员
注册时间: 2019-08-05
累计积分: 124

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

mark,留个爪印。

离线

#8 2020-02-04 14:46:59

thwin520
会员
注册时间: 2019-11-01
累计积分: 14

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

厉害了!

离线

#9 2020-02-04 16:35:27

微凉VeiLiang
会员
注册时间: 2018-10-28
累计积分: 260

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

厉害了,感谢分享

离线

#10 2020-02-04 16:36:18

gdfsli
会员
注册时间: 2018-07-11
累计积分: 16

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

下载速度太慢,还断线

离线

#11 2020-02-04 22:07:17

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

我重新设定了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

离线

#12 2020-02-04 22:20:08

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

.....
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

离线

#13 2020-02-04 22:38:01

我心飞翔
会员
注册时间: 2019-12-25
累计积分: 79

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

你确认用的是F1C100s 版本, 而不是V3s版本吗?

离线

#14 2020-02-04 23:33:17

香酥肉饼
会员
注册时间: 2020-01-10
累计积分: 4

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

xidaole 说:

我重新设定了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
检查这条命令的执行情况。

离线

#15 2020-02-05 09:39:27

ljbfly
会员
注册时间: 2017-12-07
累计积分: 32

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

mksunxi.exe 不能运行,好像和这个动态库有关msvcr120d.dll

离线

#16 2020-02-05 11:18:07

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

After Build Run #2  Tools\mksunxi Objects\@L.bin     
试过,删除bin后,重新成功生成f1c100s.bin文件。

还有改用 flashtospi 文件,编译通过后,再点下载,能成功下载;重启F1C100s板子,还是进入fel模式(电脑显示驱动)。

离线

#17 2020-02-05 11:34:42

我心飞翔
会员
注册时间: 2019-12-25
累计积分: 79

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

@xidaole

1. 手动校验: 读回来和要写入的文件比较, 判断是否写入正确.
2. 写入一个u-boot或者其他验证过的能引导的文件, 判断你的烧录软件是否正常.

离线

#18 2020-02-06 11:13:31

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

@我心飞翔
使用别的文件下载验证过,下载没有问题。
应该是 bin文件“打包”成全志认可以的 bin文件没有成功.

最近编辑记录 xidaole (2020-02-06 11:13:56)

离线

#19 2020-02-06 11:35:45

joyhope
会员
注册时间: 2020-01-16
累计积分: 38

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

先mark一下。谢谢分享了。

离线

#20 2020-02-06 12:22:14

转角1068
会员
注册时间: 2019-12-14
累计积分: 8

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

谢谢大佬分享。

离线

#21 2020-02-06 13:36:56

joyhope
会员
注册时间: 2020-01-16
累计积分: 38

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

奇怪了,我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...

离线

#22 2020-02-06 14:20:30

firstman
会员
注册时间: 2019-04-06
累计积分: 275

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

keil你选的是 gnu 工具链吗? 默认不是用 armcc.exe 的吗?

离线

#23 2020-02-06 14:46:12

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

我编译工具改为了绝对路径: ..\f1c100s_keil\Toolchain\ 
然后编译成功。 但对bin文件“打包”失败。

离线

#24 2020-02-06 14:51:07

firstman
会员
注册时间: 2019-04-06
累计积分: 275

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

xidaole 说:

我编译工具改为了绝对路径: ..\f1c100s_keil\Toolchain\ 
然后编译成功。 但对bin文件“打包”失败。

mksunxi.exe 不存在/路径错误/执行失败/参数错误?

离线

#25 2020-02-06 15:16:04

myxiaonia
会员
注册时间: 2019-06-18
累计积分: 21

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

不能用armcc编译吗

离线

#26 2020-02-06 17:10:54

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

firstman 说:

mksunxi.exe 不存在/路径错误/执行失败/参数错误?

应该是执行失败,弹出指令窗口,然后没有反应。

离线

#27 2020-02-06 19:57:02

642242855
会员
注册时间: 2019-10-31
累计积分: 65

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

下载太慢,能否上传网盘

离线

#28 2020-02-07 09:53:29

joyhope
会员
注册时间: 2020-01-16
累计积分: 38

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

>>*** 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)

离线

#29 2020-02-07 13:44:57

thwin520
会员
注册时间: 2019-11-01
累计积分: 14

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

手头没板子,只能看你们调试啊。

离线

#30 2020-02-07 15:48:06

sea18c
会员
注册时间: 2019-08-05
累计积分: 124

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

thwin520 说:

手头没板子,只能看你们调试啊。


仿真学习呀

离线

#31 2020-02-07 16:54:47

642242855
会员
注册时间: 2019-10-31
累计积分: 65

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

我也遇到了

*** 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

离线

#32 2020-02-07 17:13:18

xidaole
会员
注册时间: 2019-12-22
累计积分: 26

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

642242855 说:

我也遇到了

*** 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  文件夹

离线

#33 2020-02-07 22:41:16

linhuaou
会员
注册时间: 2019-08-09
累计积分: 30

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

烧录的时候显示 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!

离线

#34 2020-02-07 22:44:24

firstman
会员
注册时间: 2019-04-06
累计积分: 275

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

1. 可能没有进入FEL 模式(USB烧录模式)
2. 没有装 libusb 驱动

参考: https://whycan.cn/t_444.html

离线

#35 2020-02-07 23:10:37

linhuaou
会员
注册时间: 2019-08-09
累计积分: 30

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

linhuaou 说:

烧录的时候显示 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 驱动

离线

#36 2020-02-08 08:25:43

linhuaou
会员
注册时间: 2019-08-09
累计积分: 30

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

谢谢,就是这两个问题导致!

firstman 说:

1. 可能没有进入FEL 模式(USB烧录模式)
2. 没有装 libusb 驱动

参考: https://whycan.cn/t_444.html

离线

#37 2020-02-08 12:11:46

joyhope
会员
注册时间: 2020-01-16
累计积分: 38

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

仔细看了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的错误。

感谢作者给出了这个巧妙的方法,感谢晕哥发现了这个问题。这样的确为开发构建了一个好的环境。

离线

#38 2020-02-08 12:27:07

飞翔工控
会员
注册时间: 2019-11-21
累计积分: 70

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

楼上的朋友方便传一个 keil 的工程上来吗?谢谢.

离线

#39 2020-02-08 12:30:28

joyhope
会员
注册时间: 2020-01-16
累计积分: 38

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

1# 不是已经给了工程下载吗?

离线

#40 2020-02-08 12:37:45

飞翔工控
会员
注册时间: 2019-11-21
累计积分: 70

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

joyhope 说:

1# 不是已经给了工程下载吗?

噢, 那你是用 keil + gcc 编译吗?就按楼上配置?

离线

#41 2020-02-08 13:20:44

joyhope
会员
注册时间: 2020-01-16
累计积分: 38

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

楼主给的下载是完整的,唯一没有告诉使用的人要配置一下toolchain。(这个在他给的参考资料里面提到了)。 #37 只是解释了作者的工具,同样也适用其他的gcc的工具。

离线

#42 2020-02-08 14:16:20

飞翔工控
会员
注册时间: 2019-11-21
累计积分: 70

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

joyhope 说:

楼主给的下载是完整的,唯一没有告诉使用的人要配置一下toolchain。(这个在他给的参考资料里面提到了)。 #37 只是解释了作者的工具,同样也适用其他的gcc的工具。

get it!
感謝分享宝贵经验.

离线

#43 2020-02-08 15:13:19

linhuaou
会员
注册时间: 2019-08-09
累计积分: 30

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

总结的非常号,赞

joyhope 说:

仔细看了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的错误。

感谢作者给出了这个巧妙的方法,感谢晕哥发现了这个问题。这样的确为开发构建了一个好的环境。

离线

#44 2020-02-09 11:24:50

642242855
会员
注册时间: 2019-10-31
累计积分: 65

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

为什么下载到荔枝派 的板LCD什么反应都没有

离线

#45 2020-02-09 11:26:06

642242855
会员
注册时间: 2019-10-31
累计积分: 65

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

串口也没什么反应

离线

#46 2020-02-09 12:13:23

642242855
会员
注册时间: 2019-10-31
累计积分: 65

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

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

离线

#47 2020-02-09 23:25:05

忙着折腾
会员
注册时间: 2019-02-20
累计积分: 17

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

感谢大神!太牛了

离线

#48 2020-02-10 13:01:15

忙着折腾
会员
注册时间: 2019-02-20
累计积分: 17

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

none
2
在这里设置 ToolChain

离线

#49 2020-02-10 14:43:57

phpweb
会员
注册时间: 2020-02-05
累计积分: 68

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

忙着折腾 说:

在这里设置 ToolChain

这样可以用MDK + JLink单步调试吗?调试器会自动加载gcc编译elf文件吗?

离线

#50 2020-02-10 17:20:04

忙着折腾
会员
注册时间: 2019-02-20
累计积分: 17

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

phpweb 说:

这样可以用MDK + JLink单步调试吗?调试器会自动加载gcc编译elf文件吗?

这样只是可以编译通过,我的无法运行,f1c100s.bin下载到spiflash运行后会回到fel模式。

离线

#51 2020-02-10 18:01:22

phpweb
会员
注册时间: 2020-02-05
累计积分: 68

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

忙着折腾 说:

这样只是可以编译通过,我的无法运行,f1c100s.bin下载到spiflash运行后会回到fel模式。

嗯, 以前我试过MDK调试gcc生成elf文件, 我记得不成功,忘记什么原因了.

离线

#52 2020-02-10 19:20:46

忙着折腾
会员
注册时间: 2019-02-20
累计积分: 17

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

xidaole 说:

After Build Run #2  Tools\mksunxi Objects\@L.bin     
试过,删除bin后,重新成功生成f1c100s.bin文件。

还有改用 flashtospi 文件,编译通过后,再点下载,能成功下载;重启F1C100s板子,还是进入fel模式(电脑显示驱动)。

下载msvcr120d.dll放到Tools里面,再编译,重新生成的f1c100s.bin下载到spiflash就能正常运行了。msvcr120d.zip

离线

#53 2020-02-12 13:57:56

642242855
会员
注册时间: 2019-10-31
累计积分: 65

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

下载msvcr120d.dll放到Tools里面,,确实可以运行了!!感谢忙着折腾!  这是什么原因呢

离线

#54 2020-02-12 14:15:35

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,084

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

642242855 说:

下载msvcr120d.dll放到Tools里面,,确实可以运行了!!感谢忙着折腾!  这是什么原因呢

eXeScope.exeCFF Explorer.exe 等软件可以分析 exe 文件的依赖库, 把对应的库拷到同一目录, 一般都可以。

离线

#55 2020-02-12 17:33:10

mcucool
会员
注册时间: 2019-10-15
累计积分: 8

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

感谢分享!

离线

#56 2020-02-17 00:40:14

pk559
会员
注册时间: 2020-02-15
累计积分: 2

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

厉害!刚入手板子,学习中

离线

#57 2020-02-17 09:18:39

mango
会员
所在地: 北京
注册时间: 2017-12-02
累计积分: 555
个人网站

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

打算支持摄像头吗?TINY200第二版直接预留好了DVP接口
1.png

离线

#58 2020-02-18 00:03:39

忙着折腾
会员
注册时间: 2019-02-20
累计积分: 17

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

晕哥 说:

eXeScope.exeCFF Explorer.exe 等软件可以分析 exe 文件的依赖库, 把对应的库拷到同一目录, 一般都可以。

mksunxi.exe 需要用到msvcr120d.dll这个库,keil调用mksunxi出错后没有任何提示... 我通过cmd来运行mksunxi.exe就弹出一个错误框,提示缺少这个文件。   
又学到一招:eXeScope.exeCFF Explorer.exe 等软件可以分析 exe 文件的依赖库,向晕哥学习。

离线

#59 2020-02-18 08:46:06

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 9,084

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

忙着折腾 说:

mksunxi.exe 需要用到msvcr120d.dll这个库,keil调用mksunxi出错后没有任何提示... 我通过cmd来运行mksunxi.exe就弹出一个错误框,提示缺少这个文件。   
又学到一招:eXeScope.exeCFF Explorer.exe 等软件可以分析 exe 文件的依赖库,向晕哥学习。

也是可以静态链接的, 不需要依赖msvcr120d.dll, msvc编译的时候可以配置。

Qt mingw 的静态链接: https://whycan.cn/t_2395.html#p18309

离线

#60 2020-02-24 12:12:00

ntmusic
会员
注册时间: 2020-02-24
累计积分: 20

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

下载了楼主的工程文件,修改好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

离线

#61 2020-03-03 14:15:39

1847123212
会员
注册时间: 2019-11-21
累计积分: 4

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

无法下载,10%左右挂死  sad:(:(

离线

#62 2020-03-03 14:18:11

飞翔工控
会员
注册时间: 2019-11-21
累计积分: 70

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

1847123212 说:

无法下载,10%左右挂死  sad:(:(

试一试用手机热点。

离线

#63 2020-03-03 14:19:03

飞翔工控
会员
注册时间: 2019-11-21
累计积分: 70

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

ntmusic 说:

下载了楼主的工程文件,修改好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

感觉路径配置有问题。

离线

#64 2020-03-07 16:55:46

qmsolo2004
会员
注册时间: 2019-05-17
累计积分: 8

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

感謝分享宝贵经验

离线

#65 2020-03-18 20:31:16

mcucool
会员
注册时间: 2019-10-15
累计积分: 8

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

留个爪印,多谢分享

离线

#66 2020-03-19 23:36:48

saub
会员
注册时间: 2020-01-28
累计积分: 2

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

下载速度好慢,等不急啦,是不是纯KEIL能编译的?

离线

#67 2020-03-25 09:14:55

qmsolo2004
会员
注册时间: 2019-05-17
累计积分: 8

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

厉害了,感谢分享

离线

#68 2020-03-30 21:23:20

shenbk
会员
注册时间: 2019-01-11
累计积分: 4

Re: F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG

弓虽,超级单片机出现了

离线

页脚