程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11083|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" z( d8 N2 A8 P: n. c" ]# l# N#include <linux/init.h>
  g+ A3 O$ n! M9 D$ A, H& h$ A#include <linux/module.h>
$ y0 m1 D* H. v7 R#include <linux/kernel.h># [0 K! _( f; T5 t7 Z
#include <linux/types.h>6 ^: e$ j7 A7 T5 _" J4 I
#include <linux/gpio.h># ]# g; V  A4 A- |7 s
#include <linux/leds.h>! q. o2 D  [! L  t( i" `4 o# E
#include <linux/platform_device.h>. `7 n- u5 a/ I2 T3 x9 `

& G' Y, @! S* |! X& t- A#include <asm/mach-types.h>1 }1 h1 [9 x: o7 Z0 k
#include <asm/mach/arch.h>% A+ ?9 a- a7 X* x1 n% ~" A! ~
#include <mach/da8xx.h>2 r* }( s, [, p7 H0 a0 T
#include <mach/mux.h>
$ C, @- D7 ?  o6 r
2 {5 K1 h7 u* Z! C, `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( D# U: ^9 P, _* C& M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  ^- I. K" [( b4 J: [, v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); I0 R9 }( o4 z3 F) e1 `. |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- |& p2 S# N. |7 F1 N* b4 v  c
. F/ T- Y& [: Y/* assign the tl som board LED-GPIOs*/! `+ I8 |* v# F1 N
static const short da850_evm_tl_user_led_pins[] = {
. s7 l7 I/ D; ~/ k1 B        /* These pins are definition at <mach/mux.h> file */4 V% p1 C) p& R; ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) t! r! `: U9 _  u7 Y" U4 H% O8 t0 W        -1
5 ?- R  A/ i. g, r  ]};: z  |; H/ T* J. J* q2 Y+ d: u  K

0 E. |& j7 |+ ^+ |4 wstatic struct gpio_led da850_evm_tl_leds[] = {
, I( P# `8 y$ ~/ `1 e        {
1 Z8 Q1 m1 ~/ d( T! [                .active_low = 0,
2 i4 Q* \4 N" r$ L; k% w                .gpio = DA850_USER_LED0,
$ d, \! R- }. u: Y% V                .name = "user_led0",+ V& w  u. a2 {1 ~0 f
                .default_trigger = "default-on",
+ [8 M% J* _" [' Q        },
9 i7 y  y6 m) ?. v6 m, u9 d3 |+ B) z        {  d. t. Z  S4 m; ~3 k
                .active_low = 0,3 v  }# e# M) S" W! T+ Q, X; H
                .gpio = DA850_USER_LED1,
! C  e+ A+ w; J0 U9 s& Z) G                .name = "user_led1",
7 [1 q9 y& R  I4 _2 Z7 N. ~7 ^                .default_trigger = "default-on",
' \/ ?" S9 _; G' S; l1 n( a$ d        },
* w% k7 |# H* v  ?        {
2 N# E1 P+ x, f5 N3 d1 @9 Q                .active_low = 0,
5 o6 k: G7 l" P5 M- C9 {                .gpio = DA850_USER_LED2,, V! D* C4 r" c8 r' h
                .name = "user_led2",& r+ O9 L* H# T1 Y, z1 f
                .default_trigger = "default-on",
0 ]% J0 ^; P7 {5 o        },
, }! j$ J5 p1 F" g2 E1 T7 R        {
1 `9 V( a# W% n; F                .active_low = 0,
$ s4 B* s% |$ i% `( o& C# [                .gpio = DA850_USER_LED3,
! k+ }0 M1 ]5 p8 t& l  o' S7 Z                .name = "user_led3",. n, h: U% |$ H0 R
                .default_trigger = "default-on",, i7 ], \7 c8 o# g9 _
        },
4 x0 Z- T) p: Y3 n: h' _6 V; E" Z};' R) W( H& Z$ Q7 ?- J# v& `

9 X/ \$ c8 ~5 S+ Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 ]. d1 [' B6 u' u. Z* V( R( F        .leds = da850_evm_tl_leds,) g/ w: {. Q3 L7 ?2 V5 }' ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 a* D6 n1 a9 z7 M};% Z+ W# v6 s; K- V5 T' L1 m

' N* P" i: O- b! S( Q, K6 `static void led_dev_release(struct device *dev); ]9 q0 U( b# [/ b0 u7 I" G
{/ j' \0 T- u& F. r) L4 r5 R. f: @
};
) s% c. b% K: j  Q' l! L
  T+ d9 a6 L8 R3 Sstatic struct platform_device da850_evm_tl_leds_device = {- D* [& _& _( I  P9 s
        .name                = "leds-gpio",' \0 n8 i6 ]5 J" O1 M; Y9 z% |
        .id                = 1,
  x' G. D' R/ s; t0 o' ]$ v        .dev = {) Z2 I( d9 d3 V1 e+ V7 v8 }
                .platform_data = &da850_evm_tl_leds_pdata,
) T9 w2 y& r( K2 S                .release = led_dev_release,
+ m6 P3 {8 Y7 b9 s9 `! \        }
( V1 @" s, }" u+ i" i4 G5 p4 w) c};: K* p" }  G/ r$ s; h% N

+ X% ^7 x1 N2 sstatic int __init led_platform_init(void)! y! ]3 I* o+ ?$ B
{
5 P/ {: L3 `) S  Z- t        int ret;9 E8 b( G  l) k7 p1 m! H. A4 t1 K
#if 0
* V: d! g: ?% n        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: P0 H1 i# B5 O* U0 }        if (ret). |9 l) W/ l+ p7 m: w( y; `+ F3 b3 ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( r6 B+ \2 \. V
                                "%d\n", ret);. _- N! G; _" W
#endif
& H2 P8 g* j/ U$ c  m" }        ret = platform_device_register(&da850_evm_tl_leds_device);# L6 W$ s8 z8 J7 k4 i7 p- H! x
        if (ret)) R$ O; e2 ?1 x. @3 T. f2 p' ~
                pr_warning("Could not register som GPIO expander LEDS");
  `/ G: ~, k: Y# \0 S* k$ E! ?+ G        else. M8 a, d. ~- Q7 j
                printk(KERN_INFO "LED register sucessful!\n");
8 X9 l% w; P$ n7 z
$ `* t1 q3 l% ?/ |6 o        return ret;
' w( e5 z5 ~7 }: a- j1 }5 S}7 Z/ m; q# b6 E. w8 ]

  L( L0 x! s7 r( |static void __exit led_platform_exit(void)
5 o+ E8 `: a$ J6 g* k  Z7 z{: Z& B# B1 D- J0 U2 B. h4 `
        platform_device_unregister(&da850_evm_tl_leds_device);
6 C+ F% d% l6 v; j/ f$ J% `# w" G- f
        printk(KERN_INFO "LED unregister!\n");
! @+ ?2 n1 T; l! t% Y5 ]}) Q  R1 v8 p1 n: V  G2 D$ z
# f6 s0 }& }0 ?/ G
module_init(led_platform_init);( S! q! ]6 L0 O" g/ t% ]0 X
module_exit(led_platform_exit);% \$ d  Z  u" v

( j( a3 H) J' q1 F9 r% MMODULE_DESCRIPTION("Led platform driver");( S5 [2 {7 Z0 c6 ]. U& M* \# O! H
MODULE_AUTHOR("Tronlong");
4 X3 h% m7 M8 O/ ~* oMODULE_LICENSE("GPL");
3 c: r* H8 C3 M$ o
+ z" K6 Y5 l: b$ k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-4-7 10:03 , Processed in 0.039818 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表