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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; A9 d# [% Y2 H8 K$ I#include <linux/init.h>: N# X! [2 A1 _7 B7 N3 `* v& n5 q2 `
#include <linux/module.h>' [! k- b) Q& x
#include <linux/kernel.h>
1 g$ G" o9 k5 A, K: e( V#include <linux/types.h>
6 x. [  Y' q' p1 s#include <linux/gpio.h>0 s% R5 x" b. n
#include <linux/leds.h>
) @% K9 {. k% J/ h" |& N9 l#include <linux/platform_device.h>2 l7 `. m; v7 f2 `- @" R1 D& {
1 ^, Z/ n7 \! o+ ?5 l) l5 B5 Z9 f3 _
#include <asm/mach-types.h>+ u5 [1 V' Y7 C. h- K/ N
#include <asm/mach/arch.h>0 R, z1 U* `/ B
#include <mach/da8xx.h>
3 b) G) d* T8 e#include <mach/mux.h>
1 H/ S  h8 h8 u3 i2 l# q) i7 |6 I8 ?% N2 P2 o! K5 o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 }4 T) R1 S# S$ n7 X' a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ Q8 x6 t9 K% Y* Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); Z' ?1 b8 a% \1 i* R/ x
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% p- v! A6 b: F
* [; {# ]3 z$ Q( R
/* assign the tl som board LED-GPIOs*/; _( U& m1 U) F! K7 d! h" T
static const short da850_evm_tl_user_led_pins[] = {$ r" ~( e# C% ~4 K. |4 _* I
        /* These pins are definition at <mach/mux.h> file */) _2 h( E9 x! [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: }. E* \' w! W8 V! r: T        -1
4 W4 ^2 \3 s( f# ?; a4 }7 {};
) L7 K, p& y" k+ c
/ ]8 m- x" k" s0 @* Vstatic struct gpio_led da850_evm_tl_leds[] = {# o4 G% N+ ~* M) D3 X5 D
        {; h1 u2 f4 s9 p0 x- P2 a
                .active_low = 0,
$ t& `7 l1 L+ p( \/ P5 c                .gpio = DA850_USER_LED0,) F; G( J+ y% ?+ a3 Z
                .name = "user_led0",9 Y$ H/ V9 C' }4 D8 [
                .default_trigger = "default-on",
6 i* d# e: g$ [% ~, K        },/ |$ O* e5 ~3 d$ o3 _, Y  U
        {
6 r4 J, K6 l$ V$ I/ H$ A4 }                .active_low = 0,
  j& {4 }3 W+ E. w9 q0 T) T; p                .gpio = DA850_USER_LED1,! Y5 }) k2 P9 p5 M- _- f
                .name = "user_led1",. X" q  f* u# M3 q5 r  {) T8 }
                .default_trigger = "default-on",+ _3 j" a. g# B6 Y& X
        },
! W; U; [% _; D' }+ y8 b- v5 d        {7 b3 e) p" X' b4 ?7 r
                .active_low = 0,! R' L! V7 W. o8 q" k
                .gpio = DA850_USER_LED2,
! P+ i/ {/ W: L/ V                .name = "user_led2",0 }5 E% J4 A0 y6 G2 ~
                .default_trigger = "default-on",
1 d$ @/ {, j$ J! L+ m& m* H        },
+ P4 [. ^& ], g5 q1 B" I8 N        {
: T* T6 L" }/ W0 O                .active_low = 0,
, ?# I" d: ]2 p' l  [  r8 ^                .gpio = DA850_USER_LED3,+ C9 Q" M# @( A+ @" m: }
                .name = "user_led3",
# n; W4 m4 }( Z8 V+ ^8 W                .default_trigger = "default-on",
( q% q7 D- b" H3 x; O6 C        },
# U9 x5 \2 [1 H: G};4 i$ V$ u% P* \! l+ d
% Q0 `' a9 V5 H8 [( Y( h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 e2 f5 c- Z9 v# ^7 H        .leds = da850_evm_tl_leds," z0 z( O* ~8 y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" f# I" `' P/ X8 W& a1 x};
" Z- {. m9 K: c8 u
* E" w$ \& b5 P+ a( Istatic void led_dev_release(struct device *dev)
0 W4 l2 G/ m) |; M! p{
7 m) e, y1 t5 J) R3 ]; O};
: b4 s7 c: B* F8 }; L6 l* p& c- U9 l. |$ R0 C3 f# ?
static struct platform_device da850_evm_tl_leds_device = {+ t6 V$ P! _. S, O# N- P& P
        .name                = "leds-gpio",
# N* ?' t1 N- O/ N        .id                = 1," e4 a% E9 M0 _
        .dev = {5 T! ^1 B. E% i4 Y( t% P
                .platform_data = &da850_evm_tl_leds_pdata,
% [: u7 f) G* D$ f4 B, r$ R. W                .release = led_dev_release,
  f9 e/ e0 o0 q. m  k6 G        }
9 \* K, }- V/ t% |9 f};
/ g; u% g7 A: D* E6 K
0 j- A0 E% U4 h8 ~8 E4 S/ s; hstatic int __init led_platform_init(void)# D, a9 q8 z5 _' m, _& ^2 ~
{
6 Y6 d$ P' q3 v* J' ?" ]0 ?        int ret;; Y! E/ R* z: _  T/ m9 M& F
#if 0
9 P0 j% S6 t( W1 y$ i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 w) u8 y/ {- w4 u$ G( ?        if (ret)
* q7 o( z3 o  g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") t& P/ |4 e5 ?* T+ i
                                "%d\n", ret);
: {0 d1 M! Z, K  F# p2 ~4 I/ k#endif
: a! p) m2 j4 u5 {( j5 E7 E* t9 ]        ret = platform_device_register(&da850_evm_tl_leds_device);/ T$ k4 S5 C; }: c
        if (ret)
" H) T8 ^' k( i# @) a                pr_warning("Could not register som GPIO expander LEDS");
3 b$ b: T& r; v' F) B0 b        else
, b$ T5 z4 f8 w1 y3 @) L2 X                printk(KERN_INFO "LED register sucessful!\n");
( a) j+ d1 ~5 X% D6 w" o+ Y4 O
$ Z) {! k1 F2 N6 A        return ret;$ W+ W0 E% w! i2 C& l6 J
}9 F) D- @% X. }3 f! n- v
0 ~: R4 y, q' l# D
static void __exit led_platform_exit(void)
, J% y/ m2 z8 T1 }9 ^) i{/ m2 e9 `2 Y: k" f2 X
        platform_device_unregister(&da850_evm_tl_leds_device);
4 l# B1 Q+ E" f& @: v, g2 G# a/ j5 q
  G7 ~0 }  p5 _) b3 `7 o        printk(KERN_INFO "LED unregister!\n");
" S8 S" i2 L$ T* d8 R) v7 t7 l* I}" ~; u0 u, R) m: _$ ?
$ z5 r; t& |$ [; s9 l/ K; O
module_init(led_platform_init);+ e: L% I/ q+ S; p
module_exit(led_platform_exit);2 T; M5 k9 p, _! ]; M0 `  }. z) S$ ~0 w

7 S3 E, B- J- S( o1 e4 ?$ f$ HMODULE_DESCRIPTION("Led platform driver");4 B) n$ v; N  g+ R: X- L% o
MODULE_AUTHOR("Tronlong");
6 I0 s1 k/ K0 v) \4 ~' Q+ s: LMODULE_LICENSE("GPL");
  m( [2 x: {* c3 ~8 [% \( u, {1 v( n+ r$ m6 a% i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 04:26 , Processed in 0.042116 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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