├── .gitignore ├── README.md └── buildroot_001.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.a 22 | *.la 23 | *.lo 24 | 25 | # Shared objects (inc. Windows DLLs) 26 | *.dll 27 | *.so 28 | *.so.* 29 | *.dylib 30 | 31 | # Executables 32 | *.exe 33 | *.out 34 | *.app 35 | *.i*86 36 | *.x86_64 37 | *.hex 38 | 39 | # Debug files 40 | *.dSYM/ 41 | *.su 42 | *.idb 43 | *.pdb 44 | 45 | # Kernel Module Compile Results 46 | *.mod* 47 | *.cmd 48 | .tmp_versions/ 49 | modules.order 50 | Module.symvers 51 | Mkfile.old 52 | dkms.conf 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wmt_f1c_study 2 | My F1C200s and F1C100s study 3 | 4 | ## steward-fu/lichee-nano 5 | * search baidupan, steward-fu_lichee-nano 6 | * f1c100s_rt-thread.zip 7 | * melis-master.zip 8 | * sunxi-tools.7z 9 | * etc... 10 | * (where???, seems deleted) https://github.com/steward-fu/lichee-nano 11 | * https://github.com/steward-fu/archives/releases?page=7 12 | * https://github.com/steward-fu/archives/releases/tag/lichee-nano 13 | * https://github.com/steward-fu/website/releases?q=lichee-nano&expanded=true 14 | 15 | ## 芒果派r3, dfrobot, uname -a 16 | Linux mangopi-r3 5.4.92 #1 Tue May 11 10:39:00 CST 2021 armv5tejl GNU/Linux 17 | search baidupan, sysimage-nand-120mb.zip (behide lcpi_factory.rar) 18 | 19 | ## Build hello program for Linux mangopi-r3 5.4.92, get a.out 20 | * search baidupan, armv5-eabi--glibc--stable-2020.08-1.tar.bz2 21 | https://toolchains.bootlin.com 22 | select armv5eabi and glibc 23 | * https://www.icode9.com/content-3-279874.html 24 | arm-linux-gcc -mcpu=arm926ej-s a.c 25 | same as: arm-linux-gcc -mcpu=arm926ej-s a.c -static 26 | same as: arm-linux-gcc a.c 27 | same as: arm-linux-gcc a.c -static 28 | * hello program 29 | ``` 30 | #include 31 | 32 | int main() 33 | { 34 | printf("Hello, world!\n"); 35 | return 0; 36 | } 37 | ``` 38 | * search baidupan, arm-2014.05-29-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 39 | * search baidupan, arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 40 | * 荔枝派Nano使用gcc-linaro-7.2.1进行交叉编译得到的可执行文件,一运行就"segmentation fault" 41 | https://whycan.com/t_3265.html 42 | 建议用: arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 43 | https://sourcery.mentor.com/GNUToolchain/package12813/public/arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 44 | http://sources.buildroot.net/toolchain-external-codesourcery-arm/arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 45 | ubuntu18.04 x64需要安装32bit的依赖包: 46 | sudo apt-get install lib32ncurses5 lib32z1 -y 47 | 一样问题,用晕哥说的 arm-2014.05-29-arm-none-linux-gnueabi 测试可以; 48 | 下了 arm-2014.05-29-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 49 | 在windows下eclipse里编译app,放到板里能正常运行; 50 | * https://elinux.org/ARMCompilers 51 | 52 | ## Flash Linux firmware, and copy file a.out to file system 53 | * https://mangopi.org/f1c_flashrom 54 | * mpi-r-tools.zip, zadig-2.5.exe, Device, Create New Device, Allwinner FEL Device, USB ID: 1F3A EFE8, Install Driver 55 | * mpi-r-tools.zip, zadig-2.5.exe, Device, Create New Device, Allwinner DFU Device, USB ID: 1F3A 1010, Install Driver 56 | * no TF, hold press BOOT and press RST 57 | * from-fel-to-dfu.bat 58 | * dfu-util.exe -R -a all -D output\images\sysimage-nand.img (use sysimage-nand-120mb.zip) 59 | * reset, and connect board's USB OTG to PC, wait a minute, get a storage driver (named Widora MangoPi R3) 60 | * Copy elf file (a.out) to storage driver (mangopi-r3), copy to /root 61 | * Connect board's USB TTL to PC, use putty to get tty console. 62 | * chmod +x a.out && ./a.out 63 | * **NOTE: Using zadig to install Allwinner FEL Device and DFU Device will break PhoenixSuit firmware burn function, sometimes you need to uninstall it if not used** 64 | * **注意注意:安装FEL和DFU可能会导致PhoenixSuit无法使用(看不到进度条从而无法烧录),如果出现这种情况需要卸载USB驱动后再使用PhoenixSuit** 65 | 66 | ## 【荔枝派Nano】F1C100S的串口 67 | https://www.bilibili.com/read/cv9912248/ 68 | https://gitee.com/cai_xl/F1C100S_examples 69 | 70 | ## fb-test, fbset 71 | 72 | ## ARM9/ARM11裸机开发笔记1之MDK开发环境和点亮LED 73 | http://www.openedv.com/forum.php?mod=viewthread&tid=45055 74 | 75 | ## F1C100s_with_Keil_RTX4_emWin5 76 | 裸机工程: https://github.com/hongxuyao/F1C100s_with_Keil_RTX4_emWin5 77 | https://gitee.com/xuyao2020/F1C100s_with_Keil_RTX4_emWin5 78 | https://www.amobbs.com/thread-5708471-1-1.html 79 | https://www.amobbs.com/thread-5731101-1-1.html 80 | ``` 81 | --c99 82 | E:\Keil_v4\ARM\Segger\emWin\Include 83 | E:\Keil_v4\ARM\Segger\emWin\Lib\GUI_ARM_L.lib 84 | ``` 85 | F1C100s_with_Keil_RTX4_emWin5_spl_v1.rar 86 | FIXME: Only ddr running (program lost after resetting), not available for nand flash 87 | https://github.com/glorycoder/F1C100s_with_Keil_RTX4_emWin5 88 | https://github.com/motoedy/RTX4-emWin-on-F1C100s 89 | see https://github.com/nminaylov/F1C100s_LVGL 90 | 91 | ## f1c200s(tiny200) linux+emwin稳定运行 92 | https://whycan.com/t_4739.html 93 | https://github.com/xiaofengvskuye/f1c200s_emwin/blob/master/Sample/SimpleDemo/main.c 94 | 95 | ## rt-thread 96 | https://github.com/vvhh2002/f1c100s_rt-thread 97 | https://github.com/vvhh2002/lv7_rtthread_f1c100s 98 | https://github.com/VeiLiang/BoloRTT 99 | https://whycan.com/p_33590.html 100 | 101 | ## F1C100s_projects, 'u-boot, fatload mmc, go' 102 | * https://github.com/nminaylov/F1C100s_projects 103 | https://github.com/nminaylov/F1C100s_LVGL 104 | https://github.com/motoedy/minimal_f1c100s_fb_zlggui 105 | * see, f1c200s lcd_test.bin 106 | https://github.com/weimingtom/wmt_lvgl_study 107 | 108 | ## f1c100s, nor flash, licheepi nano, 荔枝派nano 109 | 我把荔枝派nano,f1c100s nor flash版烧录过程跑通了。 110 | 我用的开发板是荔枝派nano,不过需要做手脚,而且这个开发板出厂不支持录音, 111 | 如果要录音的话最好用芒果派r3,但芒果派r3的nand flash版不能用sunxi-fel直接烧录, 112 | 我还在想这个如何解决。关于荔枝派nano,由于出厂是无法直接烧录nor flash的(板载的w25q128), 113 | 需要搭额外的电路,我的做法如下,仅供参考:用一个母对公杜邦线接在GND脚上, 114 | 用一个导线一头弯钩接在w25q128的1脚上(最靠近芯片白色圆点的那个脚), 115 | 另一头接在母对公杜邦线,这两根杜邦线接在一起(通过面包板), 116 | 通过usb线接通开发板,即可进入FEL模式,启动后,需要马上在面包板上断开上述的两根杜邦线, 117 | 否则w25q128会无法片选使能。然后就可以spiflash-read和spiflash-write了, 118 | 可以读出官方的ROM可写入自己的ROM 119 | 120 | ## f1c200s, nor flash (also with nand flash, but fail to run widora's mangopi nand rom), 小淘气科技 121 | * 我购买了小淘气科技的F1C200s开发板(带nor和nand flash),没有买代码。 122 | 这个板相当于荔枝派nano(UART0是调试输出),但也可以兼容芒果派r3(需要改接UART1,即PA2收PA3发,才能看到调试输出)。 123 | 另外,虽然带有nand flash(通过跳帽来选择),但我试过无法运行芒果派r3的nand flash rom, 124 | 可能是因为nand flash的芯片型号不同,待考。屏幕是接屏线的,下方的排针其实是空出来,没有接到屏幕。 125 | 兼容800x480分辨率(我买的是这个分辨率),即可以忽略掉触摸功能和屏线,屏幕输出是不受影响的。 126 | 带有喇叭,在屏幕转接板的背面,可以拔掉线,或者用耳机来避免声音过大(当然一般情况下不会用到声音输出) 127 | * search baidupan, F1C100S开发板资料, F1C100S开发板硬件资料.rar 128 | 129 | ## F1C200S, 小淘气 130 | * search baidupan, F1C100S_keil开发文件 131 | * 有两个,较小的那个在这里:https://download.csdn.net/download/w343241644/16727273 132 | * 较大的带LVGL 133 | * see also F1C100s_with_Keil_RTX4_emWin5_spl_v1.rar, with MDK4 134 | 135 | ## 全志F1C200S F1C100S 介绍 136 | https://blog.csdn.net/tunqimai9331/article/details/95938903 137 | 138 | ## 关于荔枝派(LiChee Pi)Nano初体验中的114514个坑 139 | https://www.stlee.tech/2020/06/25/关于荔枝派(LiChee%20Pi)Nano初体验中的114514个坑/ 140 | https://github.com/Icenowy/linux/archive/f1c100s-480272lcd-test.zip 141 | 142 | ## 【荔枝派Nano】F1C100S的boothead和BROM, 哔哩哔哩专栏 143 | https://www.bilibili.com/read/cv9477324/ 144 | 145 | ## mangopi r3 146 | https://mangopi.org/mangopi_r 147 | https://github.com/mangopi-sbc/buildroot-mangopi-r 148 | 149 | ## dfrobot, mangopi r3 150 | https://wiki.dfrobot.com.cn/_SKU_DFR0780_MangoPi-R3#target_6 151 | https://wiki.dfrobot.com/MangoPi_R3_SKU_DFR0780 152 | 153 | ## SO YOU WANT TO BUILD AN EMBEDDED LINUX SYSTEM? 154 | ARM9开发板对比(英文) 155 | https://jaycarlson.net/embedded-linux/ 156 | 157 | ## F1C100S/F1C200S系统构建 158 | https://littlevgl.readthedocs.io/en/latest/Doc/03.F1C100S_Linux/F1C100S_Linux.html 159 | 160 | ## ARM9/ARM11裸机开发笔记1之MDK开发环境和点亮LED 161 | http://www.openedv.com/forum.php?mod=viewthread&tid=45055 162 | 163 | ## F1C100s with Keil RTX4 + emWin5 164 | https://gitee.com/xuyao2020/F1C100s_with_Keil_RTX4_emWin5 165 | 用Keil开发ASM9128T,让你坐拥RTX+TCPnet+emWin中间件 166 | https://www.amobbs.com/thread-5708471-1-1.html 167 | 福利来了:基于F1C100s完美运行RTX4+emWin 168 | https://www.amobbs.com/thread-5731101-1-1.html 169 | 170 | ## f1c200s(tiny200) linux+emwin稳定运行 171 | https://whycan.com/t_4739.html 172 | https://github.com/xiaofengvskuye/f1c200s_emwin/blob/master/Sample/SimpleDemo/main.c 173 | 174 | ## 荔枝派Nano使用gcc-linaro-7.2.1进行交叉编译得到的可执行文件,一运行就"segmentation fault" 175 | https://whycan.com/t_3265.html 176 | 177 | ## (未整理的链接) 178 | * https://gitee.com/LicheePiNano/F1C100S_MDK 179 | https://gitee.com/LicheePiNano/F1C100s_with_Keil_RTX4_emWin5 180 | https://gitee.com/LicheePiNano/lv7_rtthread_f1c100s 181 | https://littlevgl.readthedocs.io/en/latest/Doc/04.MDK开发F1C100S/MDK_F1C100S.html#mdk-emwin-rtt 182 | * https://whycan.com/t_1522_2.html 183 | https://bitbucket.org/qq516333132/c600/src/lcd_test/ 184 | https://github.com/mirkerson/c600 185 | * https://github.com/hcly/f1c100s 186 | https://github.com/motoedy/RTX4-emWin-on-F1C100s 187 | https://github.com/motoedy/minimal_f1c100s_fb_zlggui 188 | https://github.com/hongxuyao/F1C100s_with_Keil_RTX4_emWin5 189 | * https://github.com/armfly/H7-TOOL_STM32H7_App 190 | * https://blog.csdn.net/p1279030826/article/details/112850119 191 | https://github.com/Lichee-Pi/u-boot 192 | * https://gitee.com/zhangheyang/f1c100s_rt-thread 193 | https://gitee.com/jiang_xing/f1c100s_rt-thread 194 | https://gitee.com/qq49707555/projects 195 | * https://gitee.com/jxmlegend/f1c100s_u-boot 196 | https://gitee.com/cai_xl/F1C100S_examples/tree/master 197 | * https://steward-fu.github.io/website/mcu.htm 198 | https://steward-fu.github.io/website/mcu/f1c100s/jlink_dram.htm 199 | todo: download this: 200 | https://github.com/steward-fu/lichee-nano/releases 201 | https://www.eevblog.com/forum/projects/building-an-hmi-based-on-f1c200s-and-xboot/ 202 | https://steward-fu.github.io/website/mcu/f1c100s/asm_setup.htm 203 | * https://oshwhub.com/LSW12315/f1c100s_copy 204 | https://www.cnblogs.com/XZHDJH/articles/13607465.html 205 | https://oshwhub.com/LSW12315/f1c100score_copy 206 | https://h.bilibili.com/135640708 207 | * http://www.cxyzjd.com/searchArticle?qc=全志f1c100s&page=1 208 | http://www.cxyzjd.com/article/b7376811/109442307 209 | https://blog.csdn.net/b7376811/article/details/109442307 210 | * https://github.com/henrycoding/linux-52-f1c200s 211 | https://www.cnx-software.com/2020/04/04/widora-tiny200-allwinner-f1c200s-arm9-development-board-support-dvp-camera-up-to-512mb-sd-nand-flash/ 212 | https://github.com/henrycoding/uboot-f1c100s 213 | * ssd210, ssd201 214 | A311D 215 | * https://github.com/florpor/licheepi-nano 216 | https://github.com/unframework/licheepi-nano-buildroot 217 | https://www.seeedstudio.com/Sipeed-Lichee-Nano-Linux-Development-Board-16M-Flash-WiFi-Version-p-2893.html 218 | https://www.licheepizero.us 219 | * https://github.com/Icenowy/sunxi-tools 220 | http://nano.lichee.pro/step_by_step/two_sunxi-tools.html 221 | * https://github.com/LiShanwenGit/F1C100S-config 222 | https://github.com/LiShanwenGit/MelonPI-MINI/tree/master/documents 223 | * https://github.com/yilanjueding123/quanzhiwork 224 | * https://blog.csdn.net/p1279030826/article/details/113370239 225 | https://www.bilibili.com/read/cv9477324 226 | https://gitee.com/LicheePiNano/F1C100S_MDK 227 | F1C100S添加SPI LCD液晶驱动 228 | https://www.cnblogs.com/listenscience/p/13619930.html 229 | 全志F1C100S usb裸机驱动移植1 230 | http://www.iipcb.com/blog/F1C100S_USB_DriverDebug1.html 231 | * https://www.szc188.com/2021/06/25/f1c100s/【f1c100s】编译下载工具/ 232 | http://www.360doc.com/content/20/0930/02/71044033_938238986.shtml 233 | 新手玩荔枝派 f1c100s nano折腾笔记(四) 234 | fbv 235 | https://www.codeleading.com/article/66075573279/ 236 | 237 | ## 横米游戏机SDK 238 | https://github.com/jeason1997/MiyooSDK/tree/master/demo 239 | https://github.com/jeason1997/MiyooSDK/blob/master/demo 240 | 241 | ## 关于芒果派R3无法插入屏线线头的问题 242 | 上次我买的dfrobot的f1c200s开发板芒果派r3,它的翻盖fpc连接器怎么放都放不进去屏线, 243 | 今天我解决了这个问题。其实很简单,买那种蓝色屏线头然后用延长板转接就行,放不进去是因为屏线不够硬, 244 | 那个插座要很用力才能放进去,如果屏线的线头不够硬,是没办法把屏线放进去芒果派r3的连接器中, 245 | 而蓝色端的的那种fpc延长线反倒可以 246 | 247 | ## 尝试从一开发F1C100s应用 (使用lsz命令) 248 | * https://whycan.com/t_4266.html 249 | * lrzsz-0_12_20_tar.gz 250 | * SecureCRT.zip 251 | * (with shell) $ lrz (or linux rz, sz command) 252 | * https://blog.csdn.net/mynamepg/article/details/81118580 253 | * with buildroot 254 | ``` 255 | Target packages ---> 256 | Networking applications ---> 257 | [v] lrzsz 258 | ``` 259 | 260 | ## Planck-Pi, f1c200s 261 | * https://github.com/peng-zhihui/Planck-Pi 262 | * https://github.com/maker-community/Planck-Pi-IoT 263 | 【自制Linux单板电脑】我复刻了稚晖君的Planck-Pi 264 | https://www.bilibili.com/video/BV1Fh4y127X7 265 | 266 | ## 智能虚仪电子研发室, LVGL 8.0 port 267 | * https://oshwhub.com/lg508612189/f1c200s-chuan-kou-ping-ban 268 | * https://github.com/hongxuyao/F1C100s_with_Keil_RTX4_emWin5 269 | * LVGL 8.0, see baidupan, F1C200s_V1_2_1.zip 270 | 271 | ## qemu-f1c100s 272 | * https://github.com/newluhux/qemu-f1c100s 273 | 274 | ## 以前的笔记 275 | * 其实我星期天的时候在F1C200s开发板和4.3寸屏上跑通了网上高手(whycan)开源的无操作系统开发模板工程:F1C100s_with_Keil_RTX4_emWin5-spl-separated这个例子,只不过我只能在内存运行,不知道用何种方法烧录到nand flash上(就是重启会丢失)——其实这个例子是有版权问题的,首先这个工程可以用mdk4编译(需要加上--c99开关),而MDK4是付费的,而RTX4和emWin则是mdk4里面自带的软件,而RTX4需要另外付费(emwin是一个GUI库,可以依赖于RTX4,所以需要付费RTX才能使用) 276 | 277 | * 我购买了小淘气科技的F1C200s开发板(带nor和nand flash),没有买代码。这个板相当于荔枝派nano(UART0是调试输出),但也可以兼容芒果派r3(需要改接UART1,即PA2收PA3发,才能看到调试输出)。另外,虽然带有nand flash(通过跳帽来选择),但我试过无法运行芒果派r3的nand flash rom,可能是因为nand flash的芯片型号不同,待考。屏幕是接屏线的,下方的排针其实是空出来,没有接到屏幕。兼容800x480分辨率(我买的是这个分辨率),即可以忽略掉触摸功能和屏线,屏幕输出是不受影响的。带有喇叭,在屏幕转接板的背面,可以拔掉线,或者用耳机来避免声音过大(当然一般情况下不会用到声音输出) 278 | 279 | * 昨天试了一下,把f1c200s的u-boot的sd卡运行模式跑通了(fatload命令),不过nand flash的引导方法仍然没有头绪。fatload有个几个缺点,是要先保证tf卡是FAT文件系统,这个可能有点坑,因为可能会提示缺分区表(我是拿PSP2000去格式化TF卡),其次,需要先引导到u-boot,这里有个技巧,就是先按住BOOT按钮reset进入FEL,然后通过from-fel-to-dfu.bat进入DFU模式,而其实所谓的DFU模式就是U-BOOT,只不过会卡住等待,这时候在串口控制台按Ctrl+C中断即可回到U-BOOT命令行,然后通过fatload mmc 0:1 80000000 lcd_test.bin 280 | 和go 80000000即可运行(参考nminaylov/F1C100s_projects),我更想知道能否用类似的方法引导nand flash的代码,如果可以的话就可以解决nand引导问题 281 | 282 | * 如果没用过芒果派r3之类的f1c200s,可能会觉得奇怪为什么很多人都是通过bare metal方式(无操作系统)去开发,那是因为它跑Linux内核的话会启动得很慢——有可能是因为通过nand 128MB去引导系统,文件系统也是nand flash,会导致写入速度过慢,从而导致busybox启动速度非常慢。当然还因为f1c本身性能比较低下,当然还有别厂的arm9处理器比这个还慢,如果换成v3s会快几倍,所以有一批人是专门研究v3s而不是研究f1c 283 | 284 | * 所以,我猜测有可能是因为toolchains.bootlin.com的linux和gcc的版本比较新,所以编译出来的a.out才可以正常运行?我测试的f1c200s widora linux版本也很高。当然也不排除是因为bootlin的armv5 gcc是基于buildroot来编译的,因为它的文件前缀就有buildroot字样 ? 285 | 286 | * 我试了一下,如果想在f1c200s的linux下运行hello,有一个相对简单的方法,就是下载toolchains.bootlin.com的armv5交叉工具链:armv5-eabi--glibc--stable-2020.08-1,然后直接gcc即可(也可以加上参数-mcpu=arm926ej-s,效果是一样的;工具链不支持windows),我试过树莓派和linaro的工具链即使加上-mcpu=arm926ej-s都不行。或者可以通过buildroot,未试验。 287 | 288 | * 我最近买了两块f1c200s的开发板(whycan论坛上经常出现的一个东西),分别是dfrobot和艾尔赛。dfrobot的版本(nand 120MB版)不带麦克风,需要自己烧录固件。而艾尔赛的版本是带固件带麦克风的。使用相同的固件。我惊奇地发现widora的固件支持模拟U盘,通过OTG口可以模拟出一个类似安卓设备的东西,然后可以写入和复制文件系统里面的文件,这样对于开发来说非常方便,因为可以直接把elf文件拷贝进去然后在串口命令行执行 289 | 290 | * 除了我之前说的芯灵思全志SIN-V3S可以录音以外(基于全志v3s),其实芒果派R3也可以(基于全志f1c200s),只不过找它的官网是找不到相关的信息,倒是在dfrobot的资料库中可以找到,可以通过一个命令行tinycap实现录音,而这个命令行是出自一个开源项目tinyalsa,可以在github上找到这个项目的源代码,通过buildroot编译进固件 291 | 292 | ## EasyUSB 293 | * https://github.com/VeiLiang/EasyUSB 294 | * 创建一个易于使用和移植的usb驱动工程,支持一些常用的SOC芯片。目前支持的芯片列表:全志F1C100S, 全志V3s 295 | 296 | ## MyLibrary, gpio-f1c100s.h 297 | * https://github.com/Saoskywalker/MyLibrary 298 | 299 | ## f1c100s-boot 300 | * https://github.com/liuheng135/f1c100s-boot 301 | 302 | ## xboot 303 | * https://github.com/xboot/xboot 304 | * https://github.com/tongjinlv/my_xboot 305 | * https://github.com/Vasili-Sk/xboot-f1c200s 306 | * https://github.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c100s/start.S 307 | * https://github.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c200s/README.md 308 | * https://github.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c200s/start.S 309 | 310 | ## micropython_for_f1c100s 311 | * https://github.com/Saoskywalker/micropython_for_f1c100s 312 | 313 | ## f1c100s-linux 314 | * https://github.com/174high/f1c100s-linux 315 | 316 | ## suda-f1c100s 317 | * https://github.com/suda-morris/suda-f1c100s/blob/master/docs/tutorials/tutorial-sd.md 318 | 319 | ## 【自制】圆梦Linux小电脑, f1c200s 320 | * https://www.bilibili.com/video/BV1nN411S7BC 321 | * https://github.com/xddcore/Zero_Linux_Board 322 | * 【自制|开源】小白也可以轻松复现的Linux小电脑 323 | * https://www.bilibili.com/video/BV17u411V7ws 324 | 325 | ## 寒假制作了一个Linux小玩具, f1c200s 326 | * https://www.bilibili.com/video/BV1sz4y127Xf 327 | * https://github.com/LiShanwenGit/MelonPI-MINI 328 | 329 | ## (TODO) liulianpi, 榴莲派, f1c100s + nor spi flash 330 | * search baidupan, LiuLianPi_F1C100S_Sch_V1.pdf 331 | * 榴莲派编译手册.pdf 332 | * linux.tar.gz 333 | * https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/build_sys/build_flash_copy.html 334 | 335 | ## 基于 Linux 的 Buildroot 制作根文件系统 -- rootfs 336 | * https://www.cnblogs.com/xingboy/p/17029779.html 337 | 338 | ## 榴莲派固件编译 339 | * 编译榴莲派Linux 5失败,但Linux 4成功 340 | Linux4版nor flash: 341 | flashimg_nano_480_272_linux_4.15.0-rc8_uclibc.bin 342 | 出厂固件nor flash: 343 | liulianpi_factory_20231013.7z 344 | 编译步骤,Linux 4.15.0: https://github.com/Icenowy/linux.git;https://github.com/Icenowy/linux/tree/f1c100s-480272lcd-test 345 | https://whycan.com/t_3138_2.html 346 | suda-f1c100s linux 5 347 | https://gitee.com/forsun/suda-f1c100s/blob/master/docs/tutorials/tutorial-spiflash.md 348 | suda-f1c100s linux 4 349 | https://gitee.com/qq1847123212/SUDA_F1C100S/tree/master/kernel 350 | ``` 351 | 原来如此,可能是这样子,荔枝派nano官方是Linux 4,但Mangopi r3和r2(tiny200)是Linux 5(而且是嵌入到buildroot中),我之前没想起来是因为Mangopi r3是nand flash,只有tiny200是nor flash 352 | 除了Tiny200是Linux 5(似乎,基于buildroot编译),还有一个文档化更详细的,叫suda-f1c100s,也是Linux 5版的f1c100s,我觉得可以试试。之前编译榴莲派提供的Linux 5代码但运行失败,但如果编译Linux 4则可以,我想试试其他方法。还有一些人是基于sdcard的,如Planck-Pi,暂时不研究 353 | ``` 354 | * f1c lvgl编译运行 355 | 在榴莲派f1c100s上运行lvgl_demo (v7)和图片背景的lvgl,效果如下。我测试过只能通过buildroot的交叉工具链编译或者用arm-none-linux工具链静态链接(动态不行,需要加上-mcpu=arm926ej-s -mfloat-abi=soft开关),才可能运行成功,用编译Linux的工具链反而不行 。通过tf卡传入elf文件,并且扩展文件系统 356 | lvgl_demo_nor_flash_uclibc 357 | 简单,用buildroot生成的工具链编译: 358 | lv_port_linux_frame_buffer_f1c_480_br_uclibc_v1.tar.gz 359 | 静态链接才可运行: 360 | lv_port_linux_frame_buffer_f1c_480_none_v1.tar.gz 361 | buildroot带图片版: 362 | lv_port_linux_frame_buffer_f1c_480_image_br_uclibc_v1.tar.gz 363 | * (480 g++ ipc) 364 | 用榴莲派f1c100s运行qt4示例digitalclock和nes模拟器(infones),静态链接版,大概15M,Linux 4版系统固件,效果如下。用ubuntu14 32位编译,需要打开buildroot的工具链的c++和wchar配置开关,并且打开Linux 4内核的system v ipc配置开关。由于静态链接elf文件和字体文件太大了,塞不进nor flash内,我这里是用tf卡执行(字体则使用软连接)。nes模拟器帧率低于d1s和树莓派zero 365 | licheenano_480_ubuntu140432_v3_g++_ipc.tar.gz 366 | 里面的qt4nes 367 | * 榴莲派f1c100s Linux 5版 368 | fb-test 369 | 榴莲派f1c100s编译运行linux 5版固件(编译自aodzip buildroot版),fb-test运行效果如下。这个固件和Linux 4版的区别有这些:(1)编译Python更花时间,如果单独编译u-boot和linux更快(2)toolchain->rootfs->u-boot->linux->pack(3)make sipeed_lichee_nano_defconfig默认配置(4)一次就编译出三种ROM,sdcard/nand/nor,显示屏分辨率480272(5)rootfs加了比较多的东西,例如gdbserver, fbtest, tinyplay 370 | sysimage-nor_480_272_aodzip_nano.img 371 | 372 | ## f1c100s, gitee 373 | * https://gitee.com/LicheePiNano/lv7_rtthread_f1c100s 374 | * https://gitee.com/LicheePiNano/F1C100S_MDK/blob/master/SRC/main.c 375 | 376 | ## F1C100S_examples 377 | * https://www.bilibili.com/read/cv9477324/ 378 | * https://gitee.com/cai_xl/F1C100S_examples 379 | 380 | ## 全志F1C100s使用记录:u-boot & linux & rootfs 编译与烧录测试(基于SD卡) 381 | * https://blog.csdn.net/Naisu_kun/article/details/123142958 382 | * https://www.codetd.com/article/14276740 383 | * https://www.codeleading.com/article/46302421939/ 384 | * https://github.com/peng-zhihui/Planck-Pi 385 | * search bing : f1c100s 386 | 387 | ## f1c100s-gpio-tools 388 | * https://github.com/wuxx/f1c100s-gpio-tools 389 | 390 | ## (TODO, TODO) MiyooCFW 391 | * https://github.com/TriForceX/MiyooCFW 392 | * (TODO, TODO) 待研究,目前q8的两个自制tf卡固件都可以在Sup M3上拿到串口控制台登录(虽然按键不适配), 393 | 但测试过无法在榴莲派等f1c100s开发板上运行,所以可能需要研究怎么编译这个固件让其可以运行在开发板上 394 | * q8_od_jutleys_no_roms.img.7z and q8_od_jckl_no_roms.img.7z 395 | (dead) see https://github.com/steward-fu/archives/releases?q=q8&expanded=true 396 | see https://github.com/steward-fu/website/releases?q=q8&expanded=true 397 | * https://steward-fu.github.io/website/handheld.htm#q8 398 | * How to run MiyooCFW on Sup M3, see 399 | https://github.com/weimingtom/q90_playground 400 | ``` 401 | sup m3, MiyooCFW-2.0.0-Beta-7fc5140.zip, musl 402 | 隔了好几个月,我终于摸索出怎么在sup m3上正确配置运行MiyooCFW的方法。 403 | 其实很简单,就是要多修改options.cfg这个文件才行。 404 | (1)首先要穷举console.cfg中的CONSOLE_VARIANT值, 405 | 我选择了CONSOLE_VARIANT=m3_r61520(参考firstboot文件), 406 | 可以显示(为了跳过安装程序,需要把firstboot改名,例如firstboot.skip), 407 | 但屏幕还是会反色 408 | (2)如何解决反色问题呢,答案在firstboot里, 409 | firstboot里面提到一个配置文件options.cfg, 410 | 这个文件不容易找到是因为需要tf卡通过掌机去连PC, 411 | 而不是通过读卡器连PC,这样就可以看到main盘符, 412 | 然后修改里面options.cfg的配置INVERT=0, 413 | 然后重启即可得到正常颜色的MiyooCFW 414 | (3)由于sup m3的按键不太适应MiyooCFW, 415 | 所以只能勉强用,但framebuffer应该正常了 416 | ``` 417 | * Sup M3, 2.8inch (3inch?), 320x240, 24pin ??? 418 | 419 | ## miyoo-toolchain 420 | * miyoo-toolchain-v2.0.0-arm-buildroot-linux-musleabi_sdk-buildroot.tar.gz 421 | -------------------------------------------------------------------------------- /buildroot_001.txt: -------------------------------------------------------------------------------- 1 | https://www.cnblogs.com/xingboy/p/17029779.html 2 | 3 | 博客园首页新随笔联系管理订阅订阅随笔- 225 文章- 0 评论- 61 阅读- 88万 4 | 基于 Linux 的 Buildroot 制作根文件系统 -- rootfs 5 | 参考:https://blog.csdn.net/qq_39721016/article/details/123876398 、https://www.jianshu.com/p/a461adda7a43 仅供参考学习使用   6 | 7 |   要构建自己的开发板,首先要创建一个基本的 buildroot配置作为开发板的基本编译系统,它編譯出來的系統是屬於一種根文件系統,并不是Debian。这里包括toolchain,kernel,bootloader,filesystem 和一个简单的 busy-box 用户空间。不要选择特别的配置,这个配置必须要足够小,并仅仅作为目标平台一个基本的 BusyBox 系统。 8 | 1.需要条件 9 |   开发环境:Ubuntu16.04 10 |   开发平台:f1c100s 11 | 12 | 2.安装交叉编译链 13 |   1.新建文件夹:mkdir toolchain 并进入:cd toolchain 14 | 15 |   2.下载编译链:wget https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz 16 | 17 |   说明:如果有的对应的交叉编译器压缩包,自行拷贝到对应的目录下解压即可。 18 | 19 |   3.解压 :xz -d file.tar.xz 再次解压: tar -xvf file.tar 20 | 21 |   4.拷贝到对应的目录下(我这里放到了/usr/local/arm-gcc/,可以根据自己选择路径,等会需要用到) 22 | 23 |   5.打开.bashrc:vim ~/.bashrc 添加编译链的bin文件路径 ( 类似windows下的添加环境变量 ): 24 |   在文件末尾 添加以下内容 25 | 26 | PATH="$PATH:/usr/local/arm-gcc/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin/" 27 |   然后保存退出,最后更新环境变量:source ~/.bashrc 28 | 29 | 3.下载Buildroot代码包 30 |   在 https://buildroot.org/download.html 链接可以下载到最新的代码包(网页打开很慢,除非能…好了你懂的,《Over the wall》)。 31 | 32 | 4.开始buildroot 制作根文件系统 33 |   拷贝下载好的buildroot-2021.02.6.tar.gz 压缩包到ubuntu中,解压并进入buildroot-2021.02.6目录中(建议新建一个目录)。 34 | 35 | mkdir make_rootfs 36 | tar -xzvf buildroot-2021.02.6.tar.gz 37 | cd buildroot-2021.02.6 38 | 5.配置文件系统 menuconfig 39 |   1)进入图形化配置界面 40 | 41 | make menuconfig 42 |    43 | 44 |   5.1.Target options —> 配置说明 45 |     1)由于我们使用的是f1c100s,CPU架构是ARM9的,所以需要更改配置内容,如下: 46 | 47 |        48 | 49 |     Target options:目标板的配置 50 | 51 |   Target Architecture:目标架构,这里选择 ARM(little endian),ARM小端模式 52 |   Target Binary Format:二进制格式,为 ELF 53 |   Target Architecture Variant:内核类型 54 |   Target ABI:应用程序二进制接口,为EABI 55 |   Floating point strategy:浮点数的策略 56 |   ARM instruction set:arm 汇编指令集,选择 ARM 57 |   5.2.Build options —> 配置说明 58 |     生成选项:根据自己的实际情况选择,主要是一些编译时用到的选项,比如dl的路径,下载代码包使用的路径,同时运行多个编译的上限,是否使能编译器缓冲区等等,这里按照默认就行了. 59 | 60 |      61 | 62 |   5.3.Toolchain —> 配置说明 63 |     编译工具链选择:这个需要根据自己的实际情况修改。在这里总共修改了9个地方。 64 | 65 |      66 | 67 |     1)Toolchain type () —> 68 |     默认是 Buildroot toolchain(内部工具链),这里我们选择 External toolchain(外部工具链),因为后续要选择你的交叉编译器。 69 | 70 |       71 | 72 |     2)Toolchain () —> 73 | 74 |     选择自定义工具链 75 | 76 |      77 | 78 |     3)Toolchain origin () —> 79 |     选择工具链来源,默认就是选择 Pre-installed toolchain (预装工具链) 80 | 81 |        82 | 83 |     4)Toolchain path () 84 | 85 |     交叉编译工具链路径 86 |     找到自己的交叉编译工具链的路径填写进去,上面安装交叉编译链的时候,已经知道路径了:/usr/local/arm-gcc/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi 87 | 88 | 注意:平時配置交叉編譯器路徑 PATH 的時候會有 ‘/bin’ 這裏的路徑就不需要添加 '/bin' 部分 89 |         90 | 91 |     5)($(ARCH)-linux) Toolchain prefix () 92 | 93 |     配置交叉编译工具链前缀 94 | 95 |      96 | 97 |     我的交叉编译工具链是:arm-linux-gnueabi 所以我们填写为:$(ARCH)-linux-gnueabi,或者直接填 arm-linux-gnueabi 98 | 99 |     6)External toolchain gcc version () —> 100 |     选择外部交叉编译工具链版本 101 | 102 | arm-linux-gnueabi-gcc -v //查看交叉编译链版本信息,交叉编译链前缀-gcc -v 103 |      104 | 105 |       106 | 107 |     7)External toolchain kernel headers series () —> 108 | 109 |     外部工具链内核头系列,在这里我们进入交叉编译工具链目录,查找版本信息文件, 110 | 111 |     路径在我们刚才安装交叉编译工具链的地方: 112 | 113 | vim /usr/local/arm-gcc/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/usr/include/linux/version.h 114 |      115 | 116 |     将 264707 转换为16进制是40A03,对于10进制来说就是4.10.3 117 | 118 |      119 | 120 |     在这里我们选择4.10.X 121 | 122 |      123 | 124 |     8)External toolchain C library () —> 125 | 126 |     外部工具链C库 127 | 128 |      129 | 130 |     9)工具链支持C++ 选项 131 | 132 |      133 | 134 |   5.4.System configuration —> 配置说明 135 |     系统配置:这个需要根据自己的实际情况修改。在这里我修改了5个地方。 136 | 137 |      138 | 139 |     1)修改系统主机名 140 | 141 |      142 | 143 |     2)修改登录提示语 144 | 145 |      146 | 147 |     3)修改设备挂载方式 148 | 149 |         150 | 151 |     4)修改登录密码 152 | 153 |     注意:默认登录账户名为 root 154 | 155 |      156 | 157 |     5)修改系统登录串口号 158 | 159 |      160 | 161 |     TTY port 在这里修改为自己开发板的系统登录串口号 162 | 163 |      164 | 165 |     Baudrate 修改串口波特率 166 | 167 |      168 | 169 |   5.5.Kernel —> 配置说明 170 |     内核配置:我们不需要在这里编译内核,在这里我们取消选中 171 | 172 |      173 | 174 |      175 | 176 |   5.6.Target packages —> 配置说明 177 |   目标包:文件系统程序包和库文件安装包,这个需要根据自己的实际情况修改(可以选一下SSH之类的安装包安装在系统里),在这里我直接使用默认配置。 178 | 179 |   包管理;文件系统通常要包含很多第三方软件,通过该配置,自动从指定的服务器上下载源码包,自动编译,自动搭建。 180 |    181 | 182 |    183 | 184 |    185 | 186 |    187 | 188 |   5.7.Filesystem images —> 配置说明 189 |   文件系统镜像:在这里我直接使用默认配置 190 | 191 |    192 | 193 |   5.8.Bootloaders —> 配置说明 194 |   系统引导程序: 195 | 196 |    197 | 198 |   我们不需要在这里编译u-boot,我们取消选中u-boot。 199 | 200 |    201 | 202 |   其他不管。 203 | 204 | 6.确认并且保存配置 205 |    206 | 207 | 7.编译 208 |   1)执行编译命令: make 。 209 | 210 |   2)开始编译,第一次编译会自动去下载确实的dl文件,整个过程需要一些时间。 211 | 212 |   3)经过编译在 buildroot-2019.02.2/output/images 会生成 rootfs.tar 文件,至此,Buildroot编译完成 213 | 214 | 215 | 216 | 本文来自博客园,作者:白菜没我白,转载请注明原文链接:https://www.cnblogs.com/xingboy/p/17029779.html 217 | --------------------------------------------------------------------------------