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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; u0 |9 m, @: D* e#include <linux/init.h>$ j# f) w( G& I8 t1 X$ A( ?
#include <linux/module.h># C% ~- U% l' p+ w' `* B6 Y
#include <linux/kernel.h>( f/ W& g) s; \% x! ]
#include <linux/types.h>) Q+ _$ Y7 @( ]0 q7 N! `, q" o
#include <linux/gpio.h>! U5 ~6 R! B8 I/ d
#include <linux/leds.h>
' z/ N7 R- D1 L8 ]8 \; N' n#include <linux/platform_device.h>
2 I, `0 P, X2 j" |0 e' A; B/ A7 B; `4 s/ }* s
#include <asm/mach-types.h>
7 E. }) X- ~1 m* \( j4 b#include <asm/mach/arch.h>
3 t5 k0 ^. |' Y#include <mach/da8xx.h>4 s3 T, R" P$ [
#include <mach/mux.h># \9 [0 a4 p) [: R& _2 O! L% m
4 t: b5 C! v7 [" e% ]) F/ m# j% R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) p" R3 q- g- J$ i3 r. e#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 k7 q7 L" [3 m0 q9 t0 n) p/ K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 O' r% g" \/ _- L( w. Y, j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 D7 X5 d! ]. t4 y5 D& C

- }+ G; ?" I9 G4 o/* assign the tl som board LED-GPIOs*/3 ~* C( Y3 f* {" C# y
static const short da850_evm_tl_user_led_pins[] = {- x6 y- t& [- |0 ]/ O  r% h7 d
        /* These pins are definition at <mach/mux.h> file */0 ?/ j! O: t6 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 k7 `7 x1 H0 v        -1
) k* a  k+ S" g% h};8 v8 D3 R, I' Q1 d0 v/ U+ }
  @- @# b8 L* o1 V7 A- o  V
static struct gpio_led da850_evm_tl_leds[] = {, I0 B6 i$ F; z* r8 c# a% V; u
        {
7 I0 o! k8 O  J9 B7 t$ R# `* l                .active_low = 0,: n/ S0 ^9 D( ^& {
                .gpio = DA850_USER_LED0,7 R5 n7 W! J3 h( `9 E( z
                .name = "user_led0",
5 t) B0 W  v1 c9 _% F3 p' p# E                .default_trigger = "default-on",9 o  S& E% N+ y' a/ c2 J8 p
        },
' X2 |# \9 `: B        {6 r: ~/ @1 E; l3 U5 \
                .active_low = 0,
! h! G$ X- c* e$ V/ H& x                .gpio = DA850_USER_LED1,
. t  z, ?4 h9 f0 t3 H2 P# \                .name = "user_led1",
# b, X7 E8 C/ h. ^6 ?                .default_trigger = "default-on",
2 e9 `# o( p4 c7 A$ H6 n5 X2 `        },
3 Z* X2 ]) R4 c( t% R/ r2 i        {# t3 T/ Z+ L* x
                .active_low = 0,
! _  N* k4 E  S8 O! `1 |* ]                .gpio = DA850_USER_LED2,$ W% U3 ?, G# Y, x! P9 M! ]2 `
                .name = "user_led2",8 c/ T! R* y, r
                .default_trigger = "default-on",; C6 g& C. g2 v
        },
0 I& Y: P9 ?6 {( B% ]+ K& \        {: W0 N8 R# C4 j& c/ w8 p/ B" f: A
                .active_low = 0,/ g2 [4 \9 v6 N7 s6 Y3 _
                .gpio = DA850_USER_LED3,
9 z0 y8 N! e: V8 X8 s% A9 P, ?& ?                .name = "user_led3",
; o( h$ n+ V' j& R. m1 A& H                .default_trigger = "default-on",  z1 F1 D5 W+ i9 d, v* N( G4 v
        },' A* U/ z7 i( V  b% R
};" L! l. S8 v6 j! B, d4 g
: n1 G) M7 M$ A( }( V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. x' K2 d4 P% d, Z4 b        .leds = da850_evm_tl_leds,
$ V; Q# N2 J8 m& \  ?% O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 W' {" B0 Q; {/ P% E};& T: b7 n3 [/ j: R. S

3 R& D- q& \# P& }static void led_dev_release(struct device *dev)# o- v8 U; D) a* [3 x2 v
{
7 C, V; G5 _. A5 `4 C};: y8 p1 }, e4 s+ i6 S; k
" d/ g9 _4 q4 F
static struct platform_device da850_evm_tl_leds_device = {2 B& i& l" u0 D. N- _
        .name                = "leds-gpio",
' u+ R4 b$ @3 {$ e1 i! `. c) \8 c. n        .id                = 1,
. D& ^5 Y9 Q+ O! ^        .dev = {
/ M3 f5 d; I7 \, O                .platform_data = &da850_evm_tl_leds_pdata,
' U# [- v- _, |! E4 X0 p                .release = led_dev_release,
& l$ w; Z  C  p# _/ W        }
2 ^7 x" T8 ~( b8 |& J% }1 h};
4 D5 p& {5 ~$ [8 ?  n( \% `
2 G; V7 Y! z7 Y  D  ~9 fstatic int __init led_platform_init(void)
' w9 ~5 X' V; A9 i+ v" u' g  W{
' [* n  x$ B, L7 K3 M        int ret;
9 H! g. d2 _: ~5 w+ g7 d#if 0! m% o3 h/ N, F, V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ |, D: \) U1 k9 _' Q2 V, v$ J  Q1 s
        if (ret)  h; |; |. F, g+ Q2 k9 ^( H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ^, ]! J  Q+ Y5 Q$ t2 L( H
                                "%d\n", ret);
8 P9 I& Q/ ?% c+ R, K( f& E$ Z# A0 i' a#endif
( M0 d. [/ a& x( C        ret = platform_device_register(&da850_evm_tl_leds_device);# |0 i, m! o. y& w
        if (ret)
+ A$ d$ I. N7 t1 b                pr_warning("Could not register som GPIO expander LEDS");. Z4 k! E/ _4 f- A3 @; L/ Y" X+ j
        else
4 y7 Y  L0 M+ @! d                printk(KERN_INFO "LED register sucessful!\n");
2 i6 s3 \+ E3 Q6 F- W" b0 C
: O% `6 ?9 o2 u6 y8 ^! |; W$ b& U4 t/ x: [        return ret;
& b. R, ~  }0 r}3 p5 `& ~' G6 N

/ F1 i" {! x  r& q; r  \static void __exit led_platform_exit(void)  T+ h" h7 y+ f6 }
{7 t7 [0 h) i" o: e
        platform_device_unregister(&da850_evm_tl_leds_device);
& R, `7 K/ r* _! r1 x
9 L; I) J, l$ Z  T% ~) W1 u        printk(KERN_INFO "LED unregister!\n");
# h; S) g9 E- u) _3 H1 Q}
2 M# p  ^5 l0 ?; w$ |
" I2 q# K! L5 O# V2 zmodule_init(led_platform_init);  k9 c( O6 t, J! \$ K. p6 `( W
module_exit(led_platform_exit);/ [2 e7 w' e3 i1 v" _( d" p

3 l5 x8 G* [/ E7 s' UMODULE_DESCRIPTION("Led platform driver");
2 l( ^  E: D6 K* {0 u' uMODULE_AUTHOR("Tronlong");: ]0 b* h& i  B% f3 U8 B
MODULE_LICENSE("GPL");4 \: q- `4 v+ g4 ]/ [7 x8 b8 W9 W5 G
) g3 |/ H7 a, F! x/ p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 16:40 , Processed in 0.041080 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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