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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 w* |) a2 c' K2 Z0 e" G. [#include <linux/init.h>
/ ~6 q% R* Z" D5 W* G* k  D  {! w#include <linux/module.h>
( q% D( b# t. y3 j- m" }#include <linux/kernel.h>
+ l2 }2 G9 N- R1 i0 s& S( C2 j$ _. E#include <linux/types.h>
2 ^; @- D3 K7 v5 f5 f6 d#include <linux/gpio.h>% }( H* E7 N( O
#include <linux/leds.h>
3 {/ A: t1 `, i, W% @#include <linux/platform_device.h>
; U3 g( w1 Z' q% w# T: m3 @8 |" @; g$ W; Z4 K6 t, v- O
#include <asm/mach-types.h>' g; c# D; w# ?1 E
#include <asm/mach/arch.h>
- ]4 m% k9 u! g& k#include <mach/da8xx.h>
3 B' b: ]9 E# j* O& |$ L#include <mach/mux.h>
% ^9 ~- q/ \2 v3 y$ c( X, P, @! X8 \5 f1 A: P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 Z( o6 b9 ?+ [8 L9 r( B& J* K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 M) Q# Q+ c  B. s
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. v9 J: e9 ]) ]) U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& T" O# J3 W3 m4 A# Z9 I
1 }" k5 z6 u* T' @8 T0 j4 [% X4 ]/* assign the tl som board LED-GPIOs*/
  F2 q# ?) ^& L7 x- kstatic const short da850_evm_tl_user_led_pins[] = {2 g4 y4 M/ s$ R' u
        /* These pins are definition at <mach/mux.h> file */
" \1 y$ t* K2 Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  p* z; X$ J" {! T2 ^& K# U        -1, b6 w9 Y3 t  k8 b( \
};
3 J1 x7 E' \" D$ @6 s& l6 N) `7 B1 X  ]6 Z# v
static struct gpio_led da850_evm_tl_leds[] = {! E+ j2 o- K8 ]5 F) ~+ K% U
        {! Z, T  u- ?9 o, W. Y8 t
                .active_low = 0,
4 g. K# `+ H' s                .gpio = DA850_USER_LED0,% P/ |0 [7 z. ?4 A
                .name = "user_led0",
2 r7 ~# C- i2 i7 z* d/ b% T1 D3 ~                .default_trigger = "default-on",8 T) {! Q8 \. o  G% Q) {& k
        },& Z2 F2 E$ u# v9 f: }# [
        {- m4 Y" H' O1 W$ l
                .active_low = 0,6 k! r( m; ~0 _# k9 v
                .gpio = DA850_USER_LED1,
) @7 U9 S# c1 P) w4 t" y                .name = "user_led1",9 i) ^4 O: J$ b7 D) B8 C3 T
                .default_trigger = "default-on",6 R4 X) c+ m' Q/ y5 Q, d$ B; k; d! H
        },! c2 d+ W" y, \/ Y* e: O% n
        {& ?5 v" m- X3 q& ~/ e
                .active_low = 0,& {. n* U5 r* ]! V' u0 N( N
                .gpio = DA850_USER_LED2,$ A+ ~$ v- }$ D- g* X6 j: p
                .name = "user_led2",
! X  [  |  m8 e4 k; i/ o+ f) {, L                .default_trigger = "default-on",
, B$ a* J- ?/ x. j- \        },9 @) e" L4 E, `( [8 F+ d6 v
        {" {% g* m/ K3 q+ ?
                .active_low = 0,
: u. |: }5 F5 A/ v                .gpio = DA850_USER_LED3,
9 b- l" W( m! j$ }( h6 b                .name = "user_led3",- E# b5 m9 |' U0 u
                .default_trigger = "default-on",
, J! a5 j, p5 M* H7 e& b4 D: H6 y        },
& s5 ~6 T) U& E4 U};
6 F8 }  \" l- h) l
2 ]0 D1 o0 B  Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( H! D3 r+ [& q% o; Q        .leds = da850_evm_tl_leds,8 S9 l" ?& V; l  d7 P, R! A  I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) }. C5 P% P3 E- o$ e" C" D
};
) W: u5 Q: A) ^1 C. B
% z6 A* ?" u* a9 l: _static void led_dev_release(struct device *dev)
3 {' x) t8 Z9 A9 c{
+ c2 b& D+ O  h0 h};
3 O1 z- D8 C/ Y# o! ]6 r5 S( e" b7 b4 V# W- L( ?/ l0 ?" z
static struct platform_device da850_evm_tl_leds_device = {: h5 }; W& L# m; i* r
        .name                = "leds-gpio",
& [; [# b7 V1 G% i% l. V! U' n        .id                = 1,
% C0 C/ Z" H0 \/ P* }# m* L        .dev = {9 e+ @6 I/ j, h: i( Y: b, R
                .platform_data = &da850_evm_tl_leds_pdata,
0 V- o* G) i% t- c# [6 Z3 b                .release = led_dev_release,  u5 M; o! r9 k& v( B1 G; D/ d
        }
! ?6 G5 P9 c0 Z};& k8 k' ^  R/ C% h$ k- ?
9 T- q% r. _" }7 u* k
static int __init led_platform_init(void)) e* _! M% n8 m
{2 `! O) H) C, [1 b: G3 s# Q
        int ret;5 w8 K6 f# n  v6 E, y# G, @4 X0 e5 w
#if 0
1 b; o& m, A& L! @4 h        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% ^4 g* }/ d9 Q
        if (ret)/ t4 A: V" y6 Z9 ?# ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' O0 ^- O0 }2 y0 p  Q# o$ x. t/ G
                                "%d\n", ret);
9 x$ l2 o+ M4 t. ?6 ^' A#endif
( @0 p3 X) y6 y) i1 Z& i        ret = platform_device_register(&da850_evm_tl_leds_device);
1 t* P/ @( s; M8 e        if (ret)
$ J, r) @' M8 q% A$ j% C/ t+ s                pr_warning("Could not register som GPIO expander LEDS");
* `* [! S' R$ Q) f2 ~7 j9 ?        else
( o# X5 O) i# m9 S: u! Y# k                printk(KERN_INFO "LED register sucessful!\n");5 y9 E4 p9 Z; S6 @$ x

; K+ }: ]& ?7 }1 l5 \: E        return ret;' y1 Y5 S8 ?0 v+ n) h2 o" I8 F
}  O. W: w# H. f6 q6 l' W
  i+ ?' e3 q/ ^3 v/ l
static void __exit led_platform_exit(void)
$ T/ ^: o- J2 L, t3 r{& \- |7 |9 [; _( q3 l3 V) r, S3 l
        platform_device_unregister(&da850_evm_tl_leds_device);
0 `* u: g& n6 e* S& N
; Y9 b! u. @' t7 H        printk(KERN_INFO "LED unregister!\n");! k. {. }, \+ W* K! d2 {
}) ]: o5 q* E, S4 h8 n2 Z3 p

+ ~- o/ e: O+ ?- g' I5 u' Cmodule_init(led_platform_init);
' \1 r, z9 J! p& M! e- Rmodule_exit(led_platform_exit);0 I4 C' O0 D+ D% |) w

  W- B: U- D! Y$ {4 _- M9 R! {MODULE_DESCRIPTION("Led platform driver");0 ^. q  f: s! k5 T; E
MODULE_AUTHOR("Tronlong");
) O' Q0 z1 u# [2 B" dMODULE_LICENSE("GPL");
% T. a# G' U! S9 T! n: @& a+ ^6 h4 X, b$ @3 M; p! W5 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-2 20:01 , Processed in 0.039565 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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