工程伊始,需要在sdk包中拷贝三个重要的文件,blinky_iar_nRF5x.icf,iar_startup_nrf52.s,system_nrf52.c。

工程目录建立:

1、建立bsp文件,包括了开发板相关的头文件,开发板用PCA10040,

2、把sdk中的components目录中的drivers_nrf、libraries、device、toolchain,以及sdk_validation.h文件拷贝到自己建立的目录中,

3、建立project目录,用于放iar的工程文件,其中,RTE文件存放一些底层的文件,具体可以参考下面的罗列出来的详细的目录树。

文件夹 PATH 列表
卷序列号为 523663A7 7005:0F54
D:.
│ dir.txt

└─LED
├─bsp
│ boards.h
│ bsp.c
│ bsp.h
│ bsp_btn_ble.c
│ bsp_btn_ble.h
│ n5_starterkit.h
│ pca10028.h
│ pca10031.h
│ pca10040.h

├─components
│ │ sdk_validation.h
│ │
│ ├─device
│ │ compiler_abstraction.h
│ │ nrf.h
│ │ nrf51.h
│ │ nrf51422_peripherals.h
│ │ nrf51802_peripherals.h
│ │ nrf51822_peripherals.h
│ │ nrf51_bitfields.h
│ │ nrf51_deprecated.h
│ │ nrf51_to_nrf52.h
│ │ nrf51_to_nrf52840.h
│ │ nrf52.h
│ │ nrf52832_peripherals.h
│ │ nrf52840.h
│ │ nrf52840_bitfields.h
│ │ nrf52840_peripherals.h
│ │ nrf52_bitfields.h
│ │ nrf52_name_change.h
│ │ nrf52_to_nrf52840.h
│ │
│ ├─drivers_nrf
│ │ ├─adc
│ │ │ nrf_drv_adc.c
│ │ │ nrf_drv_adc.h
│ │ │
│ │ ├─ble_flash
│ │ │ ble_flash.c
│ │ │ ble_flash.h
│ │ │
│ │ ├─clock
│ │ │ nrf_drv_clock.c
│ │ │ nrf_drv_clock.h
│ │ │
│ │ ├─common
│ │ │ nrf_drv_common.c
│ │ │ nrf_drv_common.h
│ │ │
│ │ ├─comp
│ │ │ nrf_drv_comp.c
│ │ │ nrf_drv_comp.h
│ │ │
│ │ ├─config
│ │ │ nrf_drv_config.h
│ │ │ nrf_drv_config_validation.h
│ │ │
│ │ ├─delay
│ │ │ nrf_delay.c
│ │ │ nrf_delay.h
│ │ │
│ │ ├─gpiote
│ │ │ nrf_drv_gpiote.c
│ │ │ nrf_drv_gpiote.h
│ │ │
│ │ ├─hal
│ │ │ nrf_adc.c
│ │ │ nrf_adc.h
│ │ │ nrf_clock.h
│ │ │ nrf_comp.h
│ │ │ nrf_ecb.c
│ │ │ nrf_ecb.h
│ │ │ nrf_egu.h
│ │ │ nrf_gpio.h
│ │ │ nrf_gpiote.h
│ │ │ nrf_i2s.h
│ │ │ nrf_lpcomp.h
│ │ │ nrf_nvmc.c
│ │ │ nrf_nvmc.h
│ │ │ nrf_pdm.h
│ │ │ nrf_ppi.h
│ │ │ nrf_pwm.h
│ │ │ nrf_qdec.h
│ │ │ nrf_rng.h
│ │ │ nrf_rtc.h
│ │ │ nrf_saadc.c
│ │ │ nrf_saadc.h
│ │ │ nrf_spi.h
│ │ │ nrf_spim.h
│ │ │ nrf_spis.h
│ │ │ nrf_temp.h
│ │ │ nrf_timer.h
│ │ │ nrf_twi.h
│ │ │ nrf_twim.h
│ │ │ nrf_twis.h
│ │ │ nrf_uart.h
│ │ │ nrf_uarte.h
│ │ │ nrf_wdt.h
│ │ │
│ │ ├─i2s
│ │ │ nrf_drv_i2s.c
│ │ │ nrf_drv_i2s.h
│ │ │
│ │ ├─lpcomp
│ │ │ nrf_drv_lpcomp.c
│ │ │ nrf_drv_lpcomp.h
│ │ │
│ │ ├─nrf_soc_nosd
│ │ │ nrf_error.h
│ │ │ nrf_nvic.c
│ │ │ nrf_nvic.h
│ │ │ nrf_soc.c
│ │ │ nrf_soc.h
│ │ │
│ │ ├─pdm
│ │ │ nrf_drv_pdm.c
│ │ │ nrf_drv_pdm.h
│ │ │
│ │ ├─ppi
│ │ │ nrf_drv_ppi.c
│ │ │ nrf_drv_ppi.h
│ │ │
│ │ ├─pstorage
│ │ │ │ pstorage.c
│ │ │ │ pstorage.h
│ │ │ │ pstorage_nosd.c
│ │ │ │ pstorage_raw.c
│ │ │ │
│ │ │ └─config
│ │ │ pstorage_platform.h
│ │ │
│ │ ├─pwm
│ │ │ nrf_drv_pwm.c
│ │ │ nrf_drv_pwm.h
│ │ │
│ │ ├─qdec
│ │ │ nrf_drv_qdec.c
│ │ │ nrf_drv_qdec.h
│ │ │
│ │ ├─radio_config
│ │ │ radio_config.c
│ │ │ radio_config.h
│ │ │
│ │ ├─rng
│ │ │ nrf_drv_rng.c
│ │ │ nrf_drv_rng.h
│ │ │
│ │ ├─rtc
│ │ │ nrf_drv_rtc.c
│ │ │ nrf_drv_rtc.h
│ │ │
│ │ ├─saadc
│ │ │ nrf_drv_saadc.c
│ │ │ nrf_drv_saadc.h
│ │ │
│ │ ├─sdio
│ │ │ │ sdio.c
│ │ │ │ sdio.h
│ │ │ │
│ │ │ └─config
│ │ │ sdio_config.h
│ │ │
│ │ ├─spi_master
│ │ │ nrf_drv_spi.c
│ │ │ nrf_drv_spi.h
│ │ │ spi_5W_master.c
│ │ │ spi_5W_master.h
│ │ │
│ │ ├─spi_slave
│ │ │ nrf_drv_spis.c
│ │ │ nrf_drv_spis.h
│ │ │
│ │ ├─swi
│ │ │ nrf_drv_swi.c
│ │ │ nrf_drv_swi.h
│ │ │
│ │ ├─timer
│ │ │ nrf_drv_timer.c
│ │ │ nrf_drv_timer.h
│ │ │
│ │ ├─twis_slave
│ │ │ nrf_drv_twis.c
│ │ │ nrf_drv_twis.h
│ │ │ nrf_drv_twis_inst.def
│ │ │
│ │ ├─twi_master
│ │ │ │ nrf_drv_twi.c
│ │ │ │ nrf_drv_twi.h
│ │ │ │
│ │ │ └─deprecated
│ │ │ │ twi_hw_master.c
│ │ │ │ twi_master.h
│ │ │ │ twi_sw_master.c
│ │ │ │
│ │ │ └─config
│ │ │ twi_master_config.h
│ │ │
│ │ ├─uart
│ │ │ nrf_drv_uart.c
│ │ │ nrf_drv_uart.h
│ │ │
│ │ └─wdt
│ │ nrf_drv_wdt.c
│ │ nrf_drv_wdt.h
│ │
│ ├─libraries
│ │ ├─bootloader_dfu
│ │ │ │ bootloader.c
│ │ │ │ bootloader.h
│ │ │ │ bootloader_settings.c
│ │ │ │ bootloader_settings.h
│ │ │ │ bootloader_types.h
│ │ │ │ bootloader_util.c
│ │ │ │ bootloader_util.h
│ │ │ │ dfu.h
│ │ │ │ dfu_app_handler.c
│ │ │ │ dfu_app_handler.h
│ │ │ │ dfu_bank_internal.h
│ │ │ │ dfu_ble_svc.h
│ │ │ │ dfu_ble_svc_internal.h
│ │ │ │ dfu_dual_bank.c
│ │ │ │ dfu_init.h
│ │ │ │ dfu_init_template.c
│ │ │ │ dfu_single_bank.c
│ │ │ │ dfu_transport.h
│ │ │ │ dfu_transport_ble.c
│ │ │ │ dfu_transport_serial.c
│ │ │ │ dfu_types.h
│ │ │ │
│ │ │ ├─ble_transport
│ │ │ │ hci_mem_pool_internal.h
│ │ │ │
│ │ │ ├─experimental
│ │ │ │ dfu_init_template_signing.c
│ │ │ │ nrf_sec.h
│ │ │ │
│ │ │ └─hci_transport
│ │ │ hci_mem_pool_internal.h
│ │ │ hci_transport_config.h
│ │ │
│ │ ├─button
│ │ │ app_button.c
│ │ │ app_button.h
│ │ │
│ │ ├─crc16
│ │ │ crc16.c
│ │ │ crc16.h
│ │ │
│ │ ├─crc32
│ │ │ crc32.c
│ │ │ crc32.h
│ │ │
│ │ ├─ecc
│ │ │ ecc.c
│ │ │ ecc.h
│ │ │
│ │ ├─experimental_section_vars
│ │ │ section_vars.h
│ │ │
│ │ ├─fds
│ │ │ │ fds.c
│ │ │ │ fds.h
│ │ │ │ fds_internal_defs.h
│ │ │ │
│ │ │ └─config
│ │ │ fds_config.h
│ │ │
│ │ ├─fifo
│ │ │ app_fifo.c
│ │ │ app_fifo.h
│ │ │
│ │ ├─fstorage
│ │ │ │ fstorage.c
│ │ │ │ fstorage.h
│ │ │ │ fstorage_internal_defs.h
│ │ │ │ fstorage_nosd.c
│ │ │ │
│ │ │ └─config
│ │ │ fstorage_config.h
│ │ │
│ │ ├─gpiote
│ │ │ app_gpiote.c
│ │ │ app_gpiote.h
│ │ │ app_gpiote_fast_detect.c
│ │ │
│ │ ├─hardfault
│ │ │ │ hardfault.h
│ │ │ │ hardfault_implementation.c
│ │ │ │
│ │ │ ├─nrf51
│ │ │ │ └─handler
│ │ │ │ hardfault_handler_gcc.c
│ │ │ │ hardfault_handler_iar.c
│ │ │ │ hardfault_handler_keil.c
│ │ │ │
│ │ │ └─nrf52
│ │ │ └─handler
│ │ │ hardfault_handler_gcc.c
│ │ │ hardfault_handler_iar.c
│ │ │ hardfault_handler_keil.c
│ │ │
│ │ ├─hci
│ │ │ │ hci_mem_pool.c
│ │ │ │ hci_mem_pool.h
│ │ │ │ hci_slip.c
│ │ │ │ hci_slip.h
│ │ │ │ hci_transport.c
│ │ │ │ hci_transport.h
│ │ │ │
│ │ │ └─config
│ │ │ hci_mem_pool_internal.h
│ │ │ hci_transport_config.h
│ │ │
│ │ ├─ic_info
│ │ │ nrf_ic_info.c
│ │ │ nrf_ic_info.h
│ │ │
│ │ ├─led_softblink
│ │ │ led_softblink.c
│ │ │ led_softblink.h
│ │ │
│ │ ├─low_power_pwm
│ │ │ low_power_pwm.c
│ │ │ low_power_pwm.h
│ │ │
│ │ ├─mailbox
│ │ │ app_mailbox.c
│ │ │ app_mailbox.h
│ │ │ app_mailbox_local.h
│ │ │
│ │ ├─mem_manager
│ │ │ mem_manager.c
│ │ │ mem_manager.h
│ │ │
│ │ ├─pwm
│ │ │ app_pwm.c
│ │ │ app_pwm.h
│ │ │
│ │ ├─scheduler
│ │ │ app_scheduler.c
│ │ │ app_scheduler.h
│ │ │ app_scheduler_serconn.c
│ │ │
│ │ ├─sensorsim
│ │ │ sensorsim.c
│ │ │ sensorsim.h
│ │ │
│ │ ├─sha256
│ │ │ sha256.c
│ │ │ sha256.h
│ │ │
│ │ ├─simple_timer
│ │ │ app_simple_timer.c
│ │ │ app_simple_timer.h
│ │ │
│ │ ├─slip
│ │ │ slip.c
│ │ │ slip.h
│ │ │
│ │ ├─timer
│ │ │ app_timer.c
│ │ │ app_timer.h
│ │ │ app_timer_appsh.c
│ │ │ app_timer_appsh.h
│ │ │ app_timer_ble_gzll.c
│ │ │ app_timer_freertos.c
│ │ │ app_timer_rtx.c
│ │ │
│ │ ├─trace
│ │ │ app_trace.c
│ │ │ app_trace.h
│ │ │
│ │ ├─twi
│ │ │ app_twi.c
│ │ │ app_twi.h
│ │ │
│ │ ├─uart
│ │ │ app_uart.c
│ │ │ app_uart.h
│ │ │ app_uart_fifo.c
│ │ │ retarget.c
│ │ │
│ │ └─util
│ │ app_error.c
│ │ app_error.h
│ │ app_error_weak.c
│ │ app_error_weak.h
│ │ app_util.h
│ │ app_util_bds.h
│ │ app_util_platform.c
│ │ app_util_platform.h
│ │ common.h
│ │ nordic_common.h
│ │ nrf_assert.c
│ │ nrf_assert.h
│ │ nrf_log.c
│ │ nrf_log.h
│ │ sdk_common.h
│ │ sdk_errors.h
│ │ sdk_macros.h
│ │ sdk_mapped_flags.c
│ │ sdk_mapped_flags.h
│ │ sdk_os.h
│ │ sdk_resources.h
│ │
│ └─toolchain
│ │ system_nrf51.c
│ │ system_nrf51.h
│ │ system_nrf51422.c
│ │ system_nrf52.c
│ │ system_nrf52.h
│ │ system_nrf52840.c
│ │ system_nrf52840.h
│ │
│ ├─arm
│ │ arm_startup_nrf51.s
│ │ arm_startup_nrf52.s
│ │ arm_startup_nrf52840.s
│ │ uicr_config.h
│ │
│ ├─cmsis
│ │ ├─dsp
│ │ │ │ license.txt
│ │ │ │
│ │ │ ├─ARM
│ │ │ │ arm_cortexM4lf_math.lib
│ │ │ │ arm_cortexM4l_math.lib
│ │ │ │
│ │ │ └─GCC
│ │ │ libarm_cortexM4lf_math.a
│ │ │ libarm_cortexM4l_math.a
│ │ │
│ │ └─include
│ │ arm_common_tables.h
│ │ arm_const_structs.h
│ │ arm_math.h
│ │ cmsis_armcc.h
│ │ cmsis_armcc_V6.h
│ │ cmsis_gcc.h
│ │ core_cm0.h
│ │ core_cm0plus.h
│ │ core_cm3.h
│ │ core_cm4.h
│ │ core_cm7.h
│ │ core_cmFunc.h
│ │ core_cmInstr.h
│ │ core_cmSimd.h
│ │ core_sc000.h
│ │ core_sc300.h
│ │
│ ├─gcc
│ │ file_list.mk
│ │ gcc_nrf51_common.ld
│ │ gcc_startup_nrf51.S
│ │ gcc_startup_nrf52.S
│ │ gcc_startup_nrf52840.S
│ │ Makefile.common
│ │ Makefile.posix
│ │ Makefile.windows
│ │ nrf51_common.ld
│ │ nrf51_xxaa.ld
│ │ nrf51_xxab.ld
│ │ nrf51_xxac.ld
│ │ nrf52840_xxaa.ld
│ │ nrf52_common.ld
│ │ nrf52_xxaa.ld
│ │ nrf5x_common.ld
│ │
│ └─iar
│ iar_nrf51_blank_xxaa.icf
│ iar_nrf51_blank_xxac.icf
│ iar_startup_nrf51.s
│ iar_startup_nrf52.s
│ iar_startup_nrf52840.s

└─project
│ JLinkLog.txt
│ JLinkSettings.ini
│ led.dep
│ LED.emProject
│ LED.emSession
│ led.ewd
│ led.ewp
│ led.ewt
│ LED.eww
│ LED.uvguix.liming
│ LED.uvoptx
│ LED.uvprojx
│ main.c

├─Debug
│ ├─Exe
│ │ led.hex
│ │ led.out
│ │ led.sim
│ │
│ ├─List
│ │ led.map
│ │
│ └─Obj
│ iar_startup_nrf52.o
│ led.pbd
│ led.pbd.browse
│ led.pbd.linf
│ main.o
│ main.pbi
│ main.pbi.xcl
│ nrf_delay.o
│ nrf_delay.pbi
│ nrf_delay.pbi.xcl
│ system_nrf52.o
│ system_nrf52.pbi
│ system_nrf52.pbi.xcl

├─Listings
│ arm_startup_nrf52.lst
│ led.map

├─Objects
│ arm_startup_nrf52.d
│ arm_startup_nrf52.o
│ ExtDll.iex
│ led.axf
│ led.build_log.htm
│ led.hex
│ led.htm
│ led.lnp
│ led.sct
│ LED_nrf52832_xxaa.dep
│ main.crf
│ main.d
│ main.o
│ nrf_delay.crf
│ nrf_delay.d
│ nrf_delay.o
│ system_nrf52.crf
│ system_nrf52.d
│ system_nrf52.o

├─Output
│ └─LED nrf52832_xxaa
│ └─Obj
├─RTE
│ │ RTE_Components.h
│ │ system_nrf52.h
│ │
│ └─Device
│ └─nRF52832_xxAA
│ arm_startup_nrf52.s
│ blinky_iar_nRF5x.icf
│ iar_startup_nrf52.s
│ ses_nrf51_startup.s
│ ses_nrf52_startup.s
│ system_nrf52.c

└─settings
led.crun
led.Debug.cspy.bat
led.Debug.cspy.ps1
led.Debug.driver.xcl
led.Debug.general.xcl
led.dnx
LED.wsdt
led_Debug.jlink

  

首先,需要blinky_iar_nRF5x.icf文件,这个名称可以修改的,sdk里面根据不同的工程起了不同的文件名,但是内容是一样的。我的目录放在$PROJ_DIR$\RTE\Device\nRF52832_xxAA\blinky_iar_nRF5x.icf,在linker选项中就填上面的路径,如下图所示:

其次,需要iar_startup_nrf52.s,和icf文件同一个目录,是汇编启动文件,和stm32的启动文件和类似的。

再次需要system_nrf52.c,里面实现了始终初始化的函数。即iar_startup_nrf52.s先执行,后执行system_nrf52.c,该文件在toolchain目录中,最后执行main函数。

建立Wordspace,建立project,各目录如下所示:


最后,需要对工程进行配置,右键options


头文件路径如下:


$PROJ_DIR$\RTE\Device\nRF52832_xxAA\
$PROJ_DIR$\RTE
$PROJ_DIR$\..\bsp
$PROJ_DIR$\..\components\drivers_nrf\delay
$PROJ_DIR$\..\components\drivers_nrf\hal
$PROJ_DIR$\..\components\drivers_nrf\common
$PROJ_DIR$\..\components\drivers_nrf\uart
$PROJ_DIR$\..\components\drivers_nrf\config
$PROJ_DIR$\..\components\drivers_nrf\nrf_soc_nosd
$PROJ_DIR$\..\components\libraries\uart
$PROJ_DIR$\..\components\libraries\util
$PROJ_DIR$\..\components\libraries\fifo
$PROJ_DIR$\..\components\device
$PROJ_DIR$\..\components
$PROJ_DIR$\..\components\toolchain
$PROJ_DIR$\..\components\toolchain\cmsis\include
宏定义如下
BSP_DEFINES_ONLY
BOARD_PCA10040
NRF52
每个定义如下所示:

最后编译,下载工程hex文件,ok了。此文,参考了艾克姆科技的文档,再此表示感谢。

基于IAR移植sdk12.2.0建立nrf52832的工程———GPIO的更多相关文章

  1. 基于IAR和STM32的uCOS-II移植

    网上基于MDK的移植数不胜数,但是基于IAR的移植几乎没有,因为官方的例程就是基于IAR的,所以移植起来很简单,没人介绍,但还是得小心谨慎,一不小心就出错,对于新手来说,查找错误可不是那么容易的.IA ...

  2. 在IAR平台建立STC8ASK64S4A12单片机工程

    转载:http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=168481&page=1#pid737250  一般我们使用STC单 ...

  3. 基于Abp React前端的项目建立与运行——React框架分析

    基于Abp React前端的项目建立与运行 目录 基于Abp React前端的项目建立与运行 1 Abp项目配置 2 运行WebApi后端项目 2.1 创建C3D数据库,并且将数据库对应链接字符串替换 ...

  4. [MFC] VS2013版本MFC工程移植到VC6.0上

    :VS虽号称“宇宙最强IDE”,但是有时候安装包太大,动不动就几个G:而且安装好之后也会多出很多几乎很难用到的部分,这对于那些处女座的人如何忍受!本文不是吐槽,而是给出一种在应急场景下,不用安装新版本 ...

  5. 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发

    一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本        打开网页:https://sourcery.mentor.com/G ...

  6. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  7. 乐鑫esp8266的 基于Nonos移植红外线1883,实现遥控器控制

    代码地址如下:http://www.demodashi.com/demo/12613.html 一.前言. 距离上篇的8266进阶博文有那么一段时间了,那么本文带来的是基于Nonos的红外线H1838 ...

  8. 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接

    <Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub   spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...

  9. WebApplicationInitializer究 Spring 3.1之无web.xml式 基于代码配置的servlet3.0应用

    本文转自http://hitmit1314.iteye.com/blog/1315816 大家应该都已经知道Spring 3.1对无web.xml式基于代码配置的servlet3.0应用.通过spri ...

随机推荐

  1. TYVJ 2032 搜索

    P2032 「Poetize9」升降梯上 描述 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道,映入眼帘的是一条直通塔顶的轨道.一辆停在轨道底部的电梯.和电梯内一杆控制电梯升降的巨 ...

  2. 基于.net core微服务(Consul、Ocelot、Docker、App.Metrics+InfluxDB+Grafana、Exceptionless、数据一致性、Jenkins)

    1.微服务简介 一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(RESTfu ...

  3. libev 使用

    观察器 IO ev_io_init (ev_io *, callback, int fd, int events) ev_io_set (ev_io *, int fd, int events) I/ ...

  4. 持续集成~Jenkins里的powershell插件发布远程站点了

    通过添加powershell插件后,使用它强大的windows系统命令,就把发布好的程序包推送到具体的应用服务器了. 系统管理-插件管理-powershell 把它安装,重启jenkins,然后修改你 ...

  5. nodejs项目报Process finished with exit code 8错误

    看控制台打印出来的错误:Error: listen EADDRNOTAVAIL  这是监听ip错误,没有该端口号. 修改IP地址,改成你所需要的ip地址 一般都是在自己本机上运行,所以把监听的ip改成 ...

  6. 解析Javascript事件冒泡机制(转)

    本文转自:http://blog.csdn.net/luanlouis/article/details/23927347 1. 事件 在浏览器客户端应用平台,基本生都是以事件驱动的,即某个事件发生,然 ...

  7. Java GUI 顶级容器JFrame、JDialog

    JFrame的常用构造函数: JFrame() JFrame(String title)   //窗口标题,会显示在左上角窗体图标的后面 JDialog的常用构造函数: JDialog() JDial ...

  8. ES-windos环搭建-ik中文分词器

    ik下载 打开Github官网,搜索elasticsearch-analysis-ik,单击medcl/elasticsearch-analysis-ik.或者直接点击 在readme.md文件中,下 ...

  9. Python学习日志9月16日

    刚才我差点睡着了,差资料的时候太费神,有些累. 今天早晨学习了<head first HTML and CSS>,今天把昨天没看了的关于字体和颜色的一章节看完了,真长.我详细的做了笔记,并 ...

  10. Codeforces C The Game of Efil (暴力枚举状态)

    http://codeforces.com/gym/100650 阅读题,边界的cell的邻居要当成一个环形的来算,时间有8s,状态最多2^16种,所以直接暴力枚举就行了.另外一种做法是逆推. #in ...