linux下contiki基于stm32上的移植

系统环境:Kubuntu12.10
板子:ALIENTEK ministm32
交叉编译链: summon-arm-toolchain 4.7.3 和 CodeSourcery 4.7.2 都成功

contiki的官方代码上虽然看起来支持stm32,但是那个平台叫stm32test….( ˊ_>ˋ ) 很明显是坑人的嘛。。,而且用的是2.0的库。。。
然后进入example/hello-world,
make TARGET=stm32test savetarget
make
虽然编译成功,但是搞到板子上。。。什么现象都没有。。。( ˊ_>ˋ ) 唉,没办法了,自己搞了2天,终于移植上去了。

少废话,先贴地址,欢迎测试,不同的板子记得改IO口哦。
https://github.com/jerusalemdax/contiki-stm32

已经成功实现了的功能
1.led
2.按键
3.串口和标准stdio库
4.hello-world程序测试。
5.3.5.0的标准外设库部分移植。

记录下移植的过程中遇到过的问题,懒得详细写了。
1.printf函数移植过程中提示缺少 _sbrk之类的,网上有说,这时因为toolchain用的newlib缺少了这几个东西,加上就行了,具体见github platform/miniSTM32目录下的newlib_stub.c文件
2.就算加上newlib_stub.c文件,可是编译成功后printf函数还是不正常,这是因为CFLAGS 和 LDFLAGS的参数没加好,具体加了什么忘了。( ˊ_>ˋ )
3.Systick的问题,好像要把cpu/arm/stm32f103目录下的startup-STM32F10x.c 换成3.5.0目录里面的CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup里面的.s文件替换就行了,具体替换哪个看具体的cpu吧。

TODO:
1.让platform的接口跟contiki的默认接口兼容
2.测试其他example
3.暂时没想到

留下评论