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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 p7 |. R1 K. \5 o# |( n2 O#include <linux/init.h>! w' k1 W. o: s1 B1 F/ W, y' |
#include <linux/module.h>
+ F1 u  E9 U( w. i6 q, [& G#include <linux/kernel.h>
1 m/ U& P  I4 j#include <linux/types.h>
" V+ v, F" _5 U#include <linux/gpio.h>+ P6 f, H; f3 T1 t5 ~
#include <linux/leds.h>
7 u" {6 Q; [" q8 h#include <linux/platform_device.h>
- F! _" F# ^% ^$ ?) L# {8 D* H) D
3 ?, h: l0 I' `& K/ K: b' o#include <asm/mach-types.h>
3 j5 f( e  C( p& z4 K#include <asm/mach/arch.h>6 g8 U8 Y3 A! v
#include <mach/da8xx.h>- y5 j, a1 {% [0 G2 C% a
#include <mach/mux.h>
* e. r8 m, p- ?
9 [9 r3 K+ g# E5 A' C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 m7 X1 h8 Y; ~( X& d: [' N#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' r. X0 U0 m! V4 {) N; _) b8 j! M: I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 j- `: G" ?. @! c. {: k#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' L5 w+ o: W5 R) i* A  r  o0 C: S* l+ y! V  K! Q
/* assign the tl som board LED-GPIOs*/0 T+ T) I' b& q; u( u
static const short da850_evm_tl_user_led_pins[] = {
, J' k) X' ?2 _: `1 e+ b, Z        /* These pins are definition at <mach/mux.h> file */3 d$ Z2 y1 N7 F2 I, ]# M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 o: k' ?% ^1 [5 D) J1 u, f2 u* C        -1
/ L' R. Y# E9 p/ D};
) q( l7 A8 i( i4 [3 ~# W2 p: O
& `) [1 w& i- ~9 U! ?* ~- q/ Vstatic struct gpio_led da850_evm_tl_leds[] = {$ ^* `5 [. [# l& I+ b9 @7 b# t6 \
        {
. _  ^  f( q# p$ U1 Y  T8 {" c# X" C                .active_low = 0,. d& o, O9 A/ r% K$ X) ~/ S$ |
                .gpio = DA850_USER_LED0,7 {; ~' I2 ]: M6 o4 F8 [( D7 T5 j4 y
                .name = "user_led0",- H$ [/ S- K# z% P0 S2 t
                .default_trigger = "default-on",) O, |) k( A; o
        },
8 @# X7 X' F/ o) j        {& N+ Q! I, X: w' |% M
                .active_low = 0,; l6 A' g: q2 V: m( _. q2 H
                .gpio = DA850_USER_LED1," y# F# P( T3 r
                .name = "user_led1",
3 x9 k% z, S4 O7 G; f                .default_trigger = "default-on",/ x, Q! {2 ]$ X/ t5 R
        },
" E& n( x+ }, x7 g        {
( B+ E4 S! G; c- U% y7 Y/ _                .active_low = 0,$ x, R1 ~( |8 U' j4 }( t/ a! M" m, g
                .gpio = DA850_USER_LED2,
9 f- E( g, @; c7 u( j; L  a8 Q                .name = "user_led2",
6 Y( E) |4 Z5 C% [2 j# p+ k% e                .default_trigger = "default-on",
9 M" c9 D# A6 T7 r; m/ N$ X4 w& u  I        },! p% |" i/ v; V9 l" l+ X
        {) D" z2 a) V$ Y/ c
                .active_low = 0,3 n1 N& r6 o( l1 _5 u2 `3 W! X
                .gpio = DA850_USER_LED3,$ {" {0 ~5 P7 |% A& `, K2 V2 \
                .name = "user_led3",
! E5 I6 S# D/ B: W. k5 e                .default_trigger = "default-on",& {2 }' n* j$ o2 G9 e
        },
8 T$ d, K. b6 m$ n! ?3 U7 J' @};
. C4 R( O2 d8 N: W0 C/ q- @7 Z. i. Q  m) O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 C! y! g0 j( y
        .leds = da850_evm_tl_leds,
2 K& x9 ~; I8 |& S2 t6 \4 C0 Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& H9 R/ s  h8 H};
0 t3 i4 P. K' T+ d: ~/ P' N( G2 I2 L! O5 C' d
static void led_dev_release(struct device *dev)7 a1 j* X4 v* i. T
{6 w& B4 m+ @. U
};& M- b3 I5 p! W+ @+ d; k: P6 r: Y
! m& A$ P4 |" h
static struct platform_device da850_evm_tl_leds_device = {
3 e1 h6 Q5 y" k$ T: @2 _        .name                = "leds-gpio",
( A& Q+ V5 T& ?* v        .id                = 1,3 a6 `( `4 Y" o
        .dev = {  I3 U; ]4 P5 c8 [/ m, D, J2 K
                .platform_data = &da850_evm_tl_leds_pdata,
0 y) \  J8 \/ o1 a, e8 Y2 Z2 q                .release = led_dev_release,  }. x+ C, ?" }. ?5 u  R1 g$ v
        }
; q' N0 ?& u# n4 R% Q- x};
; l2 l% G: ?$ P. G  w3 @: Q2 Z* ?2 o$ B) V0 X4 X
static int __init led_platform_init(void)# c4 C6 v- h1 I! p: T' W
{
9 \9 p- Q9 S8 s# s+ n4 C5 M. N        int ret;4 A, D1 W5 T4 e1 n  L
#if 0
/ d+ V! d' i3 {  {) K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& q. v0 B7 t: D. m        if (ret)
% B+ D7 T* @+ z  U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' b2 F7 z2 r5 y% k0 M/ R2 g
                                "%d\n", ret);
& A% Y4 n7 B! w  M) v& }8 U#endif# w3 j: f0 O' Y3 H+ @4 `
        ret = platform_device_register(&da850_evm_tl_leds_device);8 i! C+ ~0 Q' P$ I9 Q" d
        if (ret)( O4 C# b& n3 G+ z- l& P! U
                pr_warning("Could not register som GPIO expander LEDS");# a3 B2 F) g) l% `( y" N
        else) n: o; k" E/ [& K! W/ b* l
                printk(KERN_INFO "LED register sucessful!\n");
/ @4 o! [, t+ S6 Q9 M( k
7 W) D8 k9 t. x. r' p) E        return ret;% ^! r! Q! n+ ]6 m" n
}+ ?( H) l" k: \: T+ t% n

7 q4 U' Y% o2 v! q) Estatic void __exit led_platform_exit(void)4 u7 X" f% W4 H: I" D& W& K  d
{
$ F1 t- l) _! J1 J        platform_device_unregister(&da850_evm_tl_leds_device);# h/ }& z" `- j; `' L6 K

" t7 S' x' _) g* f$ T/ r) G  L* _        printk(KERN_INFO "LED unregister!\n");
4 o* Y% f9 f' r/ d1 Q: O/ G}
& Q8 @5 ~; g+ K8 W" t: G" i+ r! f3 ~+ ^8 S3 y" f1 k
module_init(led_platform_init);
5 o5 f7 X8 k8 w3 Jmodule_exit(led_platform_exit);
/ M/ O) w6 n2 d7 R2 c
% [7 }+ o2 ^$ F8 H8 j5 OMODULE_DESCRIPTION("Led platform driver");
# ?; ^7 t: p; h$ tMODULE_AUTHOR("Tronlong");
* `# A0 g; ]4 z$ [+ v* b9 WMODULE_LICENSE("GPL");1 [' z  W1 h' @- A3 E& s0 {
, S4 |5 _# f1 {$ M$ L0 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-27 02:05 , Processed in 0.061341 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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