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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' R  z; p- x5 b. Y  |, V! T#include <linux/init.h>
- J. |1 ?' U  V9 q  Y  b7 r4 s#include <linux/module.h>- ?+ k9 N+ F1 Y1 h# a6 [6 Z+ w  W
#include <linux/kernel.h>1 ^+ H5 `; f  Z# ~8 o
#include <linux/types.h>
) N6 _# v6 {* Q  A3 S2 {& O#include <linux/gpio.h>  l+ o. q: [/ m7 g9 R
#include <linux/leds.h>
4 }4 Q4 M, m% i+ b, ?#include <linux/platform_device.h>, O. H% H0 c# s7 }2 t! m6 X, a$ e$ p3 P
8 i9 t, v% x. Q+ h
#include <asm/mach-types.h>. _+ K9 [, I) E
#include <asm/mach/arch.h>
  g# O# X6 x: m! [$ H9 a4 u#include <mach/da8xx.h>9 D/ A" u; w0 f* _5 l6 D) C, j
#include <mach/mux.h>
, n, [$ I. o" t* k$ N( Q' E/ `! i% A! U/ D  U% O, u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 I& z; u" d. l1 q, X3 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 p8 g+ b/ P# ~0 p7 I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  l8 n( h& a. j: W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 @! a: A9 O- G5 _
0 K2 b$ y2 f. ?9 l3 H/* assign the tl som board LED-GPIOs*/
+ n) y+ N! y% M4 Lstatic const short da850_evm_tl_user_led_pins[] = {# H9 v2 L0 o: [$ k) M
        /* These pins are definition at <mach/mux.h> file */4 H- ?2 b" p7 D6 l( c; R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, _3 T4 X/ d3 e4 g/ F        -1
3 d4 f& B- d1 Q! L$ B. u8 i};% \' ?- u) p  P; x* M
/ t; M! I3 `/ J1 ~  F7 ]
static struct gpio_led da850_evm_tl_leds[] = {' H3 W% H0 f* b/ K& L& ?
        {
7 N! j; Q* U5 z5 t                .active_low = 0,1 q% y# x7 ~; a. B
                .gpio = DA850_USER_LED0,
1 a+ d! A) e$ H3 P- B2 f; {                .name = "user_led0",5 b* o3 o1 }. `
                .default_trigger = "default-on",( a4 A; a  d3 D3 K- e' ^) F; v0 W: V
        },% m# l) o- Q  z9 v
        {
( Y( L" w0 _3 w( ?/ E                .active_low = 0,
, `7 n' P6 w: ^$ j3 B* _8 W                .gpio = DA850_USER_LED1,
5 A( s8 o0 C2 X" n) v2 R5 i                .name = "user_led1",
8 B% v" _* j* i! M2 T, K: c( k                .default_trigger = "default-on",
  f+ h0 H* E+ o        },
/ @# _5 ]# F0 k0 H, j        {% [: j# a8 q& C% E' B1 w+ [! p. o8 [
                .active_low = 0,
8 P3 C# f/ h5 f! X( h! g                .gpio = DA850_USER_LED2,
# e- B# U( _# L2 q$ m( T                .name = "user_led2",/ j! [7 _& v# x+ {  o
                .default_trigger = "default-on",) {4 Z+ [) h% ]; W' o# c
        },
2 G* Y% W! d5 z* f7 o$ \! F! s2 l# V        {
: }7 \5 [! g$ b9 o& t$ k- x/ t                .active_low = 0,
1 S! G" A' H. o$ F  k' `7 S                .gpio = DA850_USER_LED3,6 j7 l7 k0 C# v7 o
                .name = "user_led3",
% ]  N9 x# `; [; Q0 r. K                .default_trigger = "default-on",6 X; q, d/ i# W" q* ]. p$ I
        },; H' y0 e4 f. D* o& y1 s2 ^2 b
};
1 }- k* g3 m, o: R8 s
% V( g; I; f1 U8 E( k8 |- g( Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; t, G& X, D" r% g% p        .leds = da850_evm_tl_leds,0 Z- b& r1 N. `* s. @) A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 }1 v0 T- S5 ^% S& b# x! y* H
};
& ~3 z3 R! U! t8 R9 W1 w' i2 l, I9 Z5 r' V( w
static void led_dev_release(struct device *dev)
; ?( M) H, K! u0 _" k{: o& D2 C" ^  u' r- y4 V5 ^6 K
};& H4 W" s, E, u. Q* d4 t' i

1 ~; k3 u$ u& L7 |6 d: fstatic struct platform_device da850_evm_tl_leds_device = {
6 u6 R5 q* F+ v( H% D1 V) P        .name                = "leds-gpio",) b. l; x4 M- i/ h  n2 b# L# K
        .id                = 1,4 M! M% e% Z. u
        .dev = {' t4 w& `9 V% H. `. ?8 W  K, L* P/ C
                .platform_data = &da850_evm_tl_leds_pdata,
$ S, j: x% z) I% l8 y# e                .release = led_dev_release,* d$ W3 p: p; ^. }- i
        }
9 r4 C0 r5 }- C2 w};* z" q6 {" R+ q9 c& ?# ~; x
: H- \( P" c" p8 J4 J9 `& \% I
static int __init led_platform_init(void)
9 [  t6 ?+ m. u6 Y7 }3 _4 T{
' J* X: o8 N# A3 L2 v        int ret;
' C8 k5 w! D/ D; e#if 0: \/ q  Q1 l% m1 y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( j9 p5 _# U2 D$ D1 g" \% }
        if (ret): ?8 b5 E: Y) \+ ?3 x$ ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- O5 L1 |) f3 z" ]4 p9 ]                                "%d\n", ret);
$ H) f$ p6 N6 w! ^. V6 H0 P#endif6 t& d( z0 L: W8 A
        ret = platform_device_register(&da850_evm_tl_leds_device);9 T. R7 ^* O* X% p2 h/ z
        if (ret)% _9 S/ r" A; `  w$ P# c' g
                pr_warning("Could not register som GPIO expander LEDS");
7 |" K# p: L( q% H3 |. T; w6 [        else" p+ v3 ]5 z) c: S1 R
                printk(KERN_INFO "LED register sucessful!\n");
( H! C6 p. N3 X
  W% ?7 W( p5 I9 a3 |- n        return ret;
7 C  H$ @1 D* U9 y# ?+ ]}
9 R* `: t; h$ `- E. `, ]! j  M9 V9 ~# ]
static void __exit led_platform_exit(void)$ r9 i3 a# e" ^7 {. c8 `
{
9 l/ A1 T; @) X% t3 }' ]; s        platform_device_unregister(&da850_evm_tl_leds_device);
) K6 e$ Q' \  h
' M$ J. `$ _' z' B2 v9 K        printk(KERN_INFO "LED unregister!\n");
8 ~) Q0 t) b: T* B! C2 w}  B; h% b1 {$ ^. `8 R3 `
) R& L% J$ B8 D& X
module_init(led_platform_init);% f$ |2 y: ^# w: K7 D* d3 q6 R
module_exit(led_platform_exit);
" i7 n4 l, x/ q- H: F! N3 g. I7 F  x- g9 h9 E4 k
MODULE_DESCRIPTION("Led platform driver");% N8 I! t' b, B! V  G+ f5 O
MODULE_AUTHOR("Tronlong");# N* c# f- b, d3 p: ]7 c* K3 C+ n
MODULE_LICENSE("GPL");
7 }# s3 b% q/ B3 Z* j3 n
$ t) Q- a2 h  X0 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-14 22:46 , Processed in 0.039187 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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